Re: security reflection

2006-07-21 Tema obsahu Kamil Podlesak

Kamzik-II wrote:

No tak mel bych jeste jeden dotaz co se tyce bezpecnosti, ted to 
trosku souvisi s reflection api. Jde mi o to, jestli musi normalni 
aplikace mit nejaka specialni prava, aby mohla provadet unsafe operace 
s promennymi objektu.


Pri normalnim pouzivani reflection se kontroluje zapouzdreni (private, 
protected) beznym zpusobem. Tuto kontrolu lze vypnout metodou 
setAccessible(true) (ve tride AccessibleObject, od ktere dedni Method, 
Constructor i Field). Tato metoda kontroluje permission 
java.lang.reflect.ReflectPermission(suppressAccessChecks).


Jako normalne mi to na desktopu funguje, v klidu menim jakekoliv 
pormenne, vcetne private, ale zajima me, jestli to bude fungovat vzdy, 
a pripadne kdy to fungovat nebude...


JRE knihovna pouziva pro interni kontrolu prav 
System.getSecurityManager(). To je predevsim z duvodu zpetne 
kompatability, ale take to umoznuje vsechny tyto kontroly vypnout. 
Defaultne spustena aplikace totiz zadny security manager nema a vsechny 
tyto kontroly se preskakuji (viz napr. zdrojovy kod 
AccessibleObject.setAccessible()). To je logicke, sandbox je na desktopu 
(a vetsinou i na serveru) zbytecny, spoleha se na operacni system.


--
Kamil Podlesak [EMAIL PROTECTED]



Re: security

2006-07-20 Tema obsahu Kamzik-II

Takze bez nejakeho frameworku treti strany to nejde?


- Original Message - 
From: Martin Krajci [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 10:43 AM
Subject: Re: security



Dobry den,

Pozrite si http://www.acegisecurity.org/ a konkretne 'method invocation 
security'. Acegi sa da pouzit aj bez Springu aby ste toho nemali na 
zaciatok moc.


Martin Krajci

Kamzik-II wrote:

Zdravicko lidi,
Potreboval byh poradit :)
Rekneme, ze mam tridu Xyz, která
obsahuje mimo jiné i metodu necoUdelej.
Treba takhle:
 public class Xyz
{
 public void necoUdelej ()
{
 System.out.println ( Hotovo );
 }
 }
 A potreboval bych nejak zajistit, aby se ta metoda provedla
jenom pokud je pouzita v aplikaci, ktera je spustena, s nejakymi
pravy, jinak aby vyhodila SecurityException...



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__







Re: security

2006-07-20 Tema obsahu Martin Krajci

Dobry den,

Nie som si isty ci JEE alebo JSE nieco maju, ale vsak si to mozete sam 
naprogramovat pomocou java reflection API.


Martin Krajci

Kamzik-II wrote:

Takze bez nejakeho frameworku treti strany to nejde?


- Original Message -
From: Martin Krajci [EMAIL PROTECTED]
To: Java konference@java.cz
Sent: Thursday, July 20, 2006 10:43 AM
Subject: Re: security



Dobry den,

Pozrite si http://www.acegisecurity.org/ a konkretne 'method invocation
security'. Acegi sa da pouzit aj bez Springu aby ste toho nemali na
zaciatok moc.

Martin Krajci

Kamzik-II wrote:

Zdravicko lidi,
Potreboval byh poradit :)
Rekneme, ze mam tridu Xyz, která
obsahuje mimo jiné i metodu necoUdelej.
Treba takhle:
 public class Xyz
{
 public void necoUdelej ()
{
 System.out.println ( Hotovo );
 }
 }
 A potreboval bych nejak zajistit, aby se ta metoda provedla
jenom pokud je pouzita v aplikaci, ktera je spustena, s nejakymi
pravy, jinak aby vyhodila SecurityException...



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
__




__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__


RE: security

2006-07-20 Tema obsahu Rastislav Siekel
A nepomohlo by niečo takéto:

SecurityManager security = System.getSecurityManager();
if (security != null) 
{
security.checkConnect(String host, int port);   // napr. kontrola na
socket
}

Bedo.


 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Kamzik-II
 Sent: 20. júla 2006 13:10
 To: Java
 Subject: Re: security
 
 
 Takze bez nejakeho frameworku treti strany to nejde?
 
 
 - Original Message - 
 From: Martin Krajci [EMAIL PROTECTED]
 To: Java konference@java.cz
 Sent: Thursday, July 20, 2006 10:43 AM
 Subject: Re: security
 
 
  Dobry den,
 
  Pozrite si http://www.acegisecurity.org/ a konkretne 'method 
  invocation
  security'. Acegi sa da pouzit aj bez Springu aby ste toho nemali na 
  zaciatok moc.
 
  Martin Krajci
 
  Kamzik-II wrote:
  Zdravicko lidi,
  Potreboval byh poradit :)
  Rekneme, ze mam tridu Xyz, která
  obsahuje mimo jiné i metodu necoUdelej.
  Treba takhle:
   public class Xyz
  {
   public void necoUdelej ()
  {
   System.out.println ( Hotovo );
   }
   }
   A potreboval bych nejak zajistit, aby se ta metoda provedla jenom 
  pokud je pouzita v aplikaci, ktera je spustena, s nejakymi pravy, 
  jinak aby vyhodila SecurityException...
 
 
  
 __
  This email has been scanned by the MessageLabs Email 
 Security System. 
  For more information please visit http://www.messagelabs.com/email 
  
 __
  
 
 
 




Re: security

2006-07-20 Tema obsahu Vlastimil Eliáš

Podivejte se na JAAS, ta v sekci autorizace neco takoveho definuje.
Souvisi to s Java sandboxem ktery je soucasti JVM a umoznuje omezit
prostredi ve kterem aplikace bezi (zakazat nektere operace atp.).

Vlastik

Martin Krajci napsal(a):

Dobry den,

Nie som si isty ci JEE alebo JSE nieco maju, ale vsak si to mozete sam 
naprogramovat pomocou java reflection API.


Martin Krajci

Kamzik-II wrote:

Takze bez nejakeho frameworku treti strany to nejde?


- Original Message -
From: Martin Krajci [EMAIL PROTECTED]
To: Java konference@java.cz
Sent: Thursday, July 20, 2006 10:43 AM
Subject: Re: security



Dobry den,

Pozrite si http://www.acegisecurity.org/ a konkretne 'method invocation
security'. Acegi sa da pouzit aj bez Springu aby ste toho nemali na
zaciatok moc.

Martin Krajci

Kamzik-II wrote:

Zdravicko lidi,
Potreboval byh poradit :)
Rekneme, ze mam tridu Xyz, která
obsahuje mimo jiné i metodu necoUdelej.
Treba takhle:
 public class Xyz
{
 public void necoUdelej ()
{
 System.out.println ( Hotovo );
 }
 }
 A potreboval bych nejak zajistit, aby se ta metoda provedla
jenom pokud je pouzita v aplikaci, ktera je spustena, s nejakymi
pravy, jinak aby vyhodila SecurityException...



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
__




__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__


--
Ing. Vlastimil EliasQbizm technologies, a.s.
vedouci analytik... the art of software.

www.qbizm-technologies.czwww.qbizm.cz  www.qbizm-services.cz



Re: security

2006-07-20 Tema obsahu Roman Pichlik



Takze bez nejakeho frameworku treti strany to nejde?


Ale samozrejme, Acegi je zde naprosto zbytecny moloch. Jedina vyhoda 
jeho pouziti je, ze lze pomoci Spring AOP zadratovat kotrolu 
deklarativne, bez zmeny kodu.


a to se vam zda malo?! Me se naopak zda jako naprosty moloch pouziti 
napriklad JAASu, ale  evidentne je to vec nazoru...


--
S pozdravem Roman Dagi Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */


__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__


Re: security

2006-07-20 Tema obsahu Kamzik-II

Mohl byste uvest nejaky priklad?
Tohle reseni by mozna bylo ono, ale
nedovedu si predstavit realizaci, jak by to zhruba fungovalo?

- Original Message - 
From: Martin Krajci [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 1:19 PM
Subject: Re: security



Dobry den,

Nie som si isty ci JEE alebo JSE nieco maju, ale vsak si to mozete sam 
naprogramovat pomocou java reflection API.


Martin Krajci

Kamzik-II wrote:

Takze bez nejakeho frameworku treti strany to nejde?


- Original Message -
From: Martin Krajci [EMAIL PROTECTED]
To: Java konference@java.cz
Sent: Thursday, July 20, 2006 10:43 AM
Subject: Re: security



Dobry den,

Pozrite si http://www.acegisecurity.org/ a konkretne 'method invocation
security'. Acegi sa da pouzit aj bez Springu aby ste toho nemali na
zaciatok moc.

Martin Krajci

Kamzik-II wrote:

Zdravicko lidi,
Potreboval byh poradit :)
Rekneme, ze mam tridu Xyz, která
obsahuje mimo jiné i metodu necoUdelej.
Treba takhle:
 public class Xyz
{
 public void necoUdelej ()
{
 System.out.println ( Hotovo );
 }
 }
 A potreboval bych nejak zajistit, aby se ta metoda provedla
jenom pokud je pouzita v aplikaci, ktera je spustena, s nejakymi
pravy, jinak aby vyhodila SecurityException...



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
__




__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__







Re: security

2006-07-20 Tema obsahu Kamzik-II
No me se zda zbytecne tahat sebou nejakou dalsi knihovnu, kdyz se to da 
vyresit i jinak za spoluprace standartnich java api...



- Original Message - 
From: Roman Pichlik [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 1:25 PM
Subject: Re: security





Takze bez nejakeho frameworku treti strany to nejde?


Ale samozrejme, Acegi je zde naprosto zbytecny moloch. Jedina vyhoda jeho 
pouziti je, ze lze pomoci Spring AOP zadratovat kotrolu deklarativne, 
bez zmeny kodu.


a to se vam zda malo?! Me se naopak zda jako naprosty moloch pouziti 
napriklad JAASu, ale  evidentne je to vec nazoru...


--
S pozdravem Roman Dagi Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */


__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__







Re: security

2006-07-20 Tema obsahu Roman Pichlik
No me se zda zbytecne tahat sebou nejakou dalsi knihovnu, kdyz se to da 
vyresit i jinak za spoluprace standartnich java api...


To se samzorejme da, ale otazka je jestli to je tak efektivni a 
primocare. Kdyby se vsechno resilo pomoci standardnich API Javy, tak by 
tu nebyl zadny progress ve vyvoji Javy jako takove prikaldem budiz EJB 
3.0. Ja vam nechci to ACEGI nijak vnucovat, ale prijde mi docela silne, 
ze si pomoci anotace/xdoclet tagu zadefinuju roli, ktera muze dany kod 
invokovat a o nic vic se nestarate.


--
S pozdravem Roman Dagi Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */


__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__


RE: security

2006-07-20 Tema obsahu Rastislav Siekel
Presne tak som to myslel. Dagi-ho návrh na ACEGI bude určite komfortnejší a
variabilnejší, takže otázka zostáva na čo to má byť použité. Pokiaľ to má
byť viazané na prihláseného užívateľa, tak sa samozrejme SecurityManager
nedá použiť.

Bedo.


 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Kamzik-II
 Sent: 20. júla 2006 13:42
 To: Java
 Subject: Re: security
 
 
 Jakoze bych natvrdo odriznul lidi, co spousti aplikaci
 bez security manageru?
 
 
 - Original Message - 
 From: Rastislav Siekel [EMAIL PROTECTED]
 To: 'Java' konference@java.cz
 Sent: Thursday, July 20, 2006 1:22 PM
 Subject: RE: security
 
 
 A nepomohlo by niečo takéto:
 
 SecurityManager security = System.getSecurityManager();
 if (security != null)
 {
 security.checkConnect(String host, int port); // napr. 
 kontrola na socket }
 
 Bedo.
 
 
  -Original Message-
  From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] 
  On Behalf Of Kamzik-II
  Sent: 20. júla 2006 13:10
  To: Java
  Subject: Re: security
 
 
  Takze bez nejakeho frameworku treti strany to nejde?
 
 
  - Original Message -
  From: Martin Krajci [EMAIL PROTECTED]
  To: Java konference@java.cz
  Sent: Thursday, July 20, 2006 10:43 AM
  Subject: Re: security
 
 
   Dobry den,
  
   Pozrite si http://www.acegisecurity.org/ a konkretne 'method 
   invocation security'. Acegi sa da pouzit aj bez Springu 
 aby ste toho 
   nemali na zaciatok moc.
  
   Martin Krajci
  
   Kamzik-II wrote:
   Zdravicko lidi,
   Potreboval byh poradit :)
   Rekneme, ze mam tridu Xyz, která
   obsahuje mimo jiné i metodu necoUdelej.
   Treba takhle:
public class Xyz
   {
public void necoUdelej ()
   {
System.out.println ( Hotovo );
}
}
A potreboval bych nejak zajistit, aby se ta metoda 
 provedla jenom 
   pokud je pouzita v aplikaci, ktera je spustena, s 
 nejakymi pravy, 
   jinak aby vyhodila SecurityException...
  
  
  
  
 __
   This email has been scanned by the MessageLabs Email
  Security System.
   For more information please visit http://www.messagelabs.com/email
  
  
 __
  
 
 
 
 
 
 
 
 




Re: security

2006-07-20 Tema obsahu Kamil Podlesak

Roman Pichlik wrote:


Takze bez nejakeho frameworku treti strany to nejde?


Ale samozrejme, Acegi je zde naprosto zbytecny moloch. Jedina vyhoda 
jeho pouziti je, ze lze pomoci Spring AOP zadratovat kotrolu 
deklarativne, bez zmeny kodu.



a to se vam zda malo?!


Neni, Spring je uzitecna vec. Ale davat ho do aplikace jen tomuto?
Zalezi na tom, kolik tech kontrol bude. Pokud jedna ci dve, tak je 
zbytecne kvuli tomu tam davat cely Spring, ne? A pouzit Acegi bez 
Springu mi prijde jako nesmysl.


Me se naopak zda jako naprosty moloch pouziti napriklad JAASu, ale  
evidentne je to vec nazoru...


JAAS je samozrejme jeste horsi a hlavne resi neco trochu jineho: 
autentikaci a autorizaci uzivatelu. Zatimco puvodni tazatek chtel (pokud 
to dobre chapu) resit prava aplikace, tedy sandbox.


Doporucuji precist si neco o bezpecnostnim/sandbox modelu v Jave - tedy 
to co drive (Java 1) byval SecurityManager (udrzovan jen jako wrapper 
pro ucely kompatability) a pozdeji (Java 2, to uz je dost dlouho) 
nahrazeno AccessController/Permission.


Napriklad: http://www.securingjava.com/chapter-three/chapter-three-7.html
Nebo primo dokumentace k JDK, pripadne dalsi dokumenty na strankach SUNu.

--
Kamil Podlesak [EMAIL PROTECTED]



Re: security

2006-07-20 Tema obsahu Kamil Podlesak

Kamzik-II wrote:


Takze by pak vlastne stacilo napsat public interface,
package private tridu s implementaci a pak jenom napsat verejnej 
decorator, kterej by filtroval ty prava?


Mozna by to chtelo se poradne rozepsat, podle ceho vlastne chcete ta 
prava posuzovat a jaka to budou. Mozna ze jsem se svymi radami zcela 
mimo misu...


--
Kamil Podlesak [EMAIL PROTECTED]




Re: security

2006-07-20 Tema obsahu Kamzik-II

No melo by to byt vazane na prihlaseneho uzivatele,
ja sem prave mel vizi, ze by to mohlo byt realizovane prave pomoci security 
manageru, a pomoci jaas by se danej uzivatel jenom autorizoval. Jestli jsem 
autorizaci pochopil spravne, tak proste jenom prida prava pouzite aplikaci, 
ne? Takze by to takhle melo jit...
- Original Message - 
From: Rastislav Siekel [EMAIL PROTECTED]

To: 'Java' konference@java.cz
Sent: Thursday, July 20, 2006 1:58 PM
Subject: RE: security


Presne tak som to myslel. Dagi-ho návrh na ACEGI bude určite komfortnejší a
variabilnejší, takže otázka zostáva na čo to má byť použité. Pokiaľ to má
byť viazané na prihláseného užívateľa, tak sa samozrejme SecurityManager
nedá použiť.

Bedo.



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Kamzik-II
Sent: 20. júla 2006 13:42
To: Java
Subject: Re: security


Jakoze bych natvrdo odriznul lidi, co spousti aplikaci
bez security manageru?


- Original Message - 
From: Rastislav Siekel [EMAIL PROTECTED]

To: 'Java' konference@java.cz
Sent: Thursday, July 20, 2006 1:22 PM
Subject: RE: security


A nepomohlo by niečo takéto:

SecurityManager security = System.getSecurityManager();
if (security != null)
{
security.checkConnect(String host, int port); // napr.
kontrola na socket }

Bedo.


 -Original Message-
 From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
 On Behalf Of Kamzik-II
 Sent: 20. júla 2006 13:10
 To: Java
 Subject: Re: security


 Takze bez nejakeho frameworku treti strany to nejde?


 - Original Message -
 From: Martin Krajci [EMAIL PROTECTED]
 To: Java konference@java.cz
 Sent: Thursday, July 20, 2006 10:43 AM
 Subject: Re: security


  Dobry den,
 
  Pozrite si http://www.acegisecurity.org/ a konkretne 'method
  invocation security'. Acegi sa da pouzit aj bez Springu
aby ste toho
  nemali na zaciatok moc.
 
  Martin Krajci
 
  Kamzik-II wrote:
  Zdravicko lidi,
  Potreboval byh poradit :)
  Rekneme, ze mam tridu Xyz, která
  obsahuje mimo jiné i metodu necoUdelej.
  Treba takhle:
   public class Xyz
  {
   public void necoUdelej ()
  {
   System.out.println ( Hotovo );
   }
   }
   A potreboval bych nejak zajistit, aby se ta metoda
provedla jenom
  pokud je pouzita v aplikaci, ktera je spustena, s
nejakymi pravy,
  jinak aby vyhodila SecurityException...
 
 
 

__
  This email has been scanned by the MessageLabs Email
 Security System.
  For more information please visit http://www.messagelabs.com/email
 

__
 















Re: security

2006-07-20 Tema obsahu Kamzik-II
Kdyz uz jsme u toho sandboxu, tak ten je mi celkem jasnej, ale zajimalo by 
me jak se resi to, aby se aplikace dala spustit jenom v omezenem modu, to by 
se resilo pres zavislost na securitymanageru?
- Original Message - 
From: Kamil Podlesak [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 1:57 PM
Subject: Re: security



Roman Pichlik wrote:


Takze bez nejakeho frameworku treti strany to nejde?


Ale samozrejme, Acegi je zde naprosto zbytecny moloch. Jedina vyhoda 
jeho pouziti je, ze lze pomoci Spring AOP zadratovat kotrolu 
deklarativne, bez zmeny kodu.



a to se vam zda malo?!


Neni, Spring je uzitecna vec. Ale davat ho do aplikace jen tomuto?
Zalezi na tom, kolik tech kontrol bude. Pokud jedna ci dve, tak je 
zbytecne kvuli tomu tam davat cely Spring, ne? A pouzit Acegi bez Springu 
mi prijde jako nesmysl.


Me se naopak zda jako naprosty moloch pouziti napriklad JAASu, ale 
evidentne je to vec nazoru...


JAAS je samozrejme jeste horsi a hlavne resi neco trochu jineho: 
autentikaci a autorizaci uzivatelu. Zatimco puvodni tazatek chtel (pokud 
to dobre chapu) resit prava aplikace, tedy sandbox.


Doporucuji precist si neco o bezpecnostnim/sandbox modelu v Jave - tedy to 
co drive (Java 1) byval SecurityManager (udrzovan jen jako wrapper pro 
ucely kompatability) a pozdeji (Java 2, to uz je dost dlouho) nahrazeno 
AccessController/Permission.


Napriklad: http://www.securingjava.com/chapter-three/chapter-three-7.html
Nebo primo dokumentace k JDK, pripadne dalsi dokumenty na strankach SUNu.

--
Kamil Podlesak [EMAIL PROTECTED]







Re: security

2006-07-20 Tema obsahu Kamil Podlesak

Kamzik-II wrote:


No melo by to byt vazane na prihlaseneho uzivatele,
ja sem prave mel vizi, ze by to mohlo byt realizovane prave pomoci 
security manageru, a pomoci jaas by se danej uzivatel jenom 
autorizoval. Jestli jsem autorizaci pochopil spravne, tak proste jenom 
prida prava pouzite aplikaci, ne? Takze by to takhle melo jit...


Aha, tak to jste to pochopil spatne, prava aplikace jsou neco uplne jineho.

Acegi je asi nejlepsi rada, pouziti samotneho JAAS je velmi neprakticke 
(hodne prace s psanim kodu okolo, konfigurace se ani neda korektne 
ohodnotit bez vulgarnich vyrazu).



--
Kamil Podlesak [EMAIL PROTECTED]



Re: security

2006-07-20 Tema obsahu Kamzik-II
Dobre, takze melo by jit defacto treba o odebirani clanku, takze je to 
zalozene na prihlasovani uzivatele a na kontrole jeho pristupovych prav. Slo 
mi vlastne jenom o to, jestli si musim v implementaci kazde tridy, psat 
overovani, nebo jestli by nestacilo, jenom nejak vyuzit standartnich 
Permission-based reseni.




- Original Message - 
From: Kamil Podlesak [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 2:02 PM
Subject: Re: security



Kamzik-II wrote:


Takze by pak vlastne stacilo napsat public interface,
package private tridu s implementaci a pak jenom napsat verejnej 
decorator, kterej by filtroval ty prava?


Mozna by to chtelo se poradne rozepsat, podle ceho vlastne chcete ta prava 
posuzovat a jaka to budou. Mozna ze jsem se svymi radami zcela mimo 
misu...


--
Kamil Podlesak [EMAIL PROTECTED]








Re: security

2006-07-20 Tema obsahu Kamzik-II
No ja jsem si to acegi stahnul a vicemene mi to prislo strasne chaoticke, 
abych pravdu rekl, tak ten tutorial mi prave vubec neprisel jako tutorial, 
ale jako pokus o nacpeme tam teho co nejvic, aby lidi videli, ze je to 
cool :)




- Original Message - 
From: Kamil Podlesak [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 2:09 PM
Subject: Re: security



Kamzik-II wrote:


No melo by to byt vazane na prihlaseneho uzivatele,
ja sem prave mel vizi, ze by to mohlo byt realizovane prave pomoci 
security manageru, a pomoci jaas by se danej uzivatel jenom autorizoval. 
Jestli jsem autorizaci pochopil spravne, tak proste jenom prida prava 
pouzite aplikaci, ne? Takze by to takhle melo jit...


Aha, tak to jste to pochopil spatne, prava aplikace jsou neco uplne 
jineho.


Acegi je asi nejlepsi rada, pouziti samotneho JAAS je velmi neprakticke 
(hodne prace s psanim kodu okolo, konfigurace se ani neda korektne 
ohodnotit bez vulgarnich vyrazu).



--
Kamil Podlesak [EMAIL PROTECTED]







Re: security

2006-07-20 Tema obsahu Kamil Podlesak

Kamzik-II wrote:

Kdyz uz jsme u toho sandboxu, tak ten je mi celkem jasnej, ale 
zajimalo by me jak se resi to, aby se aplikace dala spustit jenom v 
omezenem modu, to by se resilo pres zavislost na securitymanageru?


Prava prirazena kodu se konfiguruji v JRE podle umisteni (umisteni 
JARu/adresare) nebo podle certifikatu kterym je JAR podepsan. Prava jsou 
prirazena kodu, nikoliv aplikaci (v ramci aplikace muze mit kod ruzna 
prava). Konfigurace je v JRE, systemovy uzivatel ale muze mit vlastni.


Vice viz odkazy, ktere jsem daval (neni toho malo a navic je to 
evidentne neco jineho nez potrebujete).



Napriklad: 
http://www.securingjava.com/chapter-three/chapter-three-7.html
Nebo primo dokumentace k JDK, pripadne dalsi dokumenty na strankach 
SUNu.





--
Kamil Podlesak [EMAIL PROTECTED]




Re: security

2006-07-20 Tema obsahu Kamzik-II

Prava jsou prirazena kodu.
Tomu mam rozumet jakoze pokud bych mel v aplikace trusted knihovnu, tak bych 
pres ni

mohl delat bordel i kdyz muj kod neni trusted?

- Original Message - 
From: Kamil Podlesak [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 2:15 PM
Subject: Re: security



Kamzik-II wrote:

Kdyz uz jsme u toho sandboxu, tak ten je mi celkem jasnej, ale zajimalo 
by me jak se resi to, aby se aplikace dala spustit jenom v omezenem modu, 
to by se resilo pres zavislost na securitymanageru?


Prava prirazena kodu se konfiguruji v JRE podle umisteni (umisteni 
JARu/adresare) nebo podle certifikatu kterym je JAR podepsan. Prava jsou 
prirazena kodu, nikoliv aplikaci (v ramci aplikace muze mit kod ruzna 
prava). Konfigurace je v JRE, systemovy uzivatel ale muze mit vlastni.


Vice viz odkazy, ktere jsem daval (neni toho malo a navic je to evidentne 
neco jineho nez potrebujete).



Napriklad: 
http://www.securingjava.com/chapter-three/chapter-three-7.html
Nebo primo dokumentace k JDK, pripadne dalsi dokumenty na strankach 
SUNu.





--
Kamil Podlesak [EMAIL PROTECTED]








Re: security

2006-07-20 Tema obsahu Kamil Podlesak

Kamzik-II wrote:


Prava jsou prirazena kodu.


Tomu mam rozumet jakoze pokud bych mel v aplikace trusted knihovnu, 
tak bych pres ni

mohl delat bordel i kdyz muj kod neni trusted?


S tim se samozrejme pocita (koneckoncu, standardni knihovna je zcela 
trusted). Efektivni prava v koamziku kontroly jsou prunikem prav vseho 
kodu na zasobniku. Takze to pak vypada zasobnik napriklad takto:


 UntrustableApp.main():  omezena prava, nema pravo BordelPermission
 TrustableLibrary.doBordel() : plna prava, tedy vcerne BordelPermission
 AccessController.checkPermission(new BordelPermission())   : zjisti 
prunik, pravo nema, vyjimka


Pokud trusted kod potrebuje provest neco na co volajici nemusi mit prava 
a je si jisty ze je to OK (napriklad precist konfigurak, ktery je jinak 
duverny a apletum skryty), muze pouzit AccessController.doPrivileged() 
metody.



--
Kamil Podlesak [EMAIL PROTECTED]



Re: security

2006-07-20 Tema obsahu Martin Krajci

Dobry den,

Skusil som to nacrtnut ako by to mohlo byt riesene cez reflection API, 
ale pripominam ze trebalo by tam viacej veci podotahovat, hlavne teda 
krajsie vytvaranie instancii (Foo) a implementovat isUserInRole, ale 
princip je tam zachyteny.


Osobne by som sa priklonil za to Acegi ako sme to tu uz viac krat spominali.

code
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class MethodInvoker
{
  
 public static void main(String[] argv) {

 MethodInvoker mi = new MethodInvoker();

 mi.test();

 }

 public void test()
 {
   InvocationHandler handler = new FacadeInvocationHandler(new 
Foo());  
  
   IFoo f = (IFoo) Proxy.newProxyInstance(Foo.class.getClassLoader(), 
new Class[] { IFoo.class }, handler);
  
   f.call();

 }

 /**
  * Very simple facade which delegates all calls to a target object.
  */
 private static class FacadeInvocationHandler implements InvocationHandler
 {
   Object facaded;

   public FacadeInvocationHandler(Object facaded)
   {
 this.facaded = facaded;
   }

   public Object invoke(Object proxy, Method method, Object[] args) 
throws Throwable
   {   
 if(isUserInRole()) {
 return method.invoke(facaded, args); 
 } else {

 return null;
 }
   }
 }

 private static boolean isUserInRole() {
 return true;
 }

 interface IFoo {
 public void call();
 }

 class Foo implements IFoo
 {
   public void call() {
   System.out.print(Called);
   }   
 }
} 
/code


Martin Krajci

Kamzik-II wrote:

Mohl byste uvest nejaky priklad?
Tohle reseni by mozna bylo ono, ale
nedovedu si predstavit realizaci, jak by to zhruba fungovalo?

- Original Message -
From: Martin Krajci [EMAIL PROTECTED]
To: Java konference@java.cz
Sent: Thursday, July 20, 2006 1:19 PM
Subject: Re: security



Dobry den,

Nie som si isty ci JEE alebo JSE nieco maju, ale vsak si to mozete sam
naprogramovat pomocou java reflection API.

Martin Krajci

Kamzik-II wrote:

Takze bez nejakeho frameworku treti strany to nejde?


- Original Message -
From: Martin Krajci [EMAIL PROTECTED]
To: Java konference@java.cz
Sent: Thursday, July 20, 2006 10:43 AM
Subject: Re: security



Dobry den,

Pozrite si http://www.acegisecurity.org/ a konkretne 'method 
invocation

security'. Acegi sa da pouzit aj bez Springu aby ste toho nemali na
zaciatok moc.

Martin Krajci

Kamzik-II wrote:

Zdravicko lidi,
Potreboval byh poradit :)
Rekneme, ze mam tridu Xyz, která
obsahuje mimo jiné i metodu necoUdelej.
Treba takhle:
 public class Xyz
{
 public void necoUdelej ()
{
 System.out.println ( Hotovo );
 }
 }
 A potreboval bych nejak zajistit, aby se ta metoda provedla
jenom pokud je pouzita v aplikaci, ktera je spustena, s nejakymi
pravy, jinak aby vyhodila SecurityException...



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
__




__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
__



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
__




__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__



__
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
__


Re: security

2006-07-20 Tema obsahu Kamil Podlesak

Kamzik-II wrote:

Aha, takze normalne to nejde, ale pokud by ta knihovna mela nejakej 
zajem poskytnout to i netrusted aplikaci, tak proste bude soucasti 
implementace volani doTrusted? Pochopil jsem to spravne?



A vse probehne zcela v poradku a bez vyjimky,
kdezto pokud by tam nebylo AccessController.doPrivileged(), taky by 
nastala vyjimka, je to tak? :)


Ano. Tomu doPrivileged se jako parametr preda objekt s tim kodem (neco 
jako Runnable) a JVM na nem zavola metodu run() s takovymi pravy, jaka 
ma primy volajici (TrustedClass).


--
Kamil Podlesak [EMAIL PROTECTED]
inSITE, s.r.o.




Re: security

2006-07-20 Tema obsahu Kamzik-II

Dobry, uz jsem zacal mit pochybnosti o bezpecnosti knihoven :)
Ok, tak diky za osvetleni


- Original Message - 
From: Kamil Podlesak [EMAIL PROTECTED]

To: Java konference@java.cz
Sent: Thursday, July 20, 2006 4:49 PM
Subject: Re: security



Kamzik-II wrote:

Aha, takze normalne to nejde, ale pokud by ta knihovna mela nejakej 
zajem poskytnout to i netrusted aplikaci, tak proste bude soucasti 
implementace volani doTrusted? Pochopil jsem to spravne?



A vse probehne zcela v poradku a bez vyjimky,
kdezto pokud by tam nebylo AccessController.doPrivileged(), taky by 
nastala vyjimka, je to tak? :)


Ano. Tomu doPrivileged se jako parametr preda objekt s tim kodem (neco 
jako Runnable) a JVM na nem zavola metodu run() s takovymi pravy, jaka 
ma primy volajici (TrustedClass).


--
Kamil Podlesak [EMAIL PROTECTED]
inSITE, s.r.o.