CZJUG Praha - Spring security a Gate keeping se Zuulem

2017-02-18 Tema obsahu Roman Pichlík
Únorové setkání Pražské Czech Java User Group proběhne v pondělí 27.2.
od 19h v posluchárně S5 na Matematicko-fyzikální fakultě Karlovy
Univerzity na Malostranském náměstí 25, Praha 1. Čeká nás prezentce:
Spring Security prakticky (Jan Novotný, FG Forrest) a dále Jak gating
a Zuul zlepšují kvalitu kódu v GoodData (Michal Vančo, GoodData).
Sponzorem setkání je starlift.org. Vstup na akce CZJUGu je zdarma, a
není třeba se předem registrovat. Pokud se chystáte přijít, dejte nám
vědět formou hlasování v anketě na hlavní stránce portálu java.cz.

Spring Security prakticky

Přednáška je určena těm, kteří se se Spring Security zatím nesetkali
nebo setkali jen letmo. Projdeme si základní principy fungování této
knihovny, která zajišťuje vyspělou autentizaci a autorizaci v Java
aplikacích postavených (nejen) na Springu. Prolétneme v rychlosti i
základní bezpečnostní prvky prohlížečů jako CSP, HSTS, HPKP a další
security hlavičky, správné nakládání s hesly, některé typy útoků a
ochranu proti nim.

Jan Novotný

Vývojem v Javě se živím už více jak 10 let. Ve společnosti FG Forrest
se starám o vývoj webových aplikací pro přední české i zahraniční
zákazníky. Posledních pár let se snažím komunitě vrátit to, co jsem
jsem z ní načerpal - jsem spoluorganizátorem ne-konference jOpenSpace,
natáčím videocast Kafemlejnek.TV a už spíš výjimečně napíši něco na
blog.

Jak gating a Zuul zlepšují kvalitu kódu v GoodData

Prezentace představí koncept “gatingu”, který je již přes rok
implementován v GoodData jako součást Continuous Integration. Díky
tomuto přístupu mají vývojáři jistotu, že pracují nad funkčním kódem a
do repozitářů se dostává pouze otestovaný kód. Mimo jiné bude
prezentace zaměřena na konkrétní ukázky, typy “pipeline” a informace o
tom, jak snadno si stejné prostředí můžete zprovoznit nad svým kódem
(a ne jen pokud používáte Gerrit).

Michal Vančo

Michal pracuje již téměř 4 roky ve společnosti GoodData, která se
zabývá vývojem big-data analytické platformy v cloudu. Jako QA
architekt a manažer se nejvíce soustředí na zlepšování a efektivitu
testovacích frameworků a nástrojů, které souvisí s automatizací a
zdokonalováním celého vývojového procesu. Aktivně se věnoval rozvoji
testovacích nástrojů pro nahrazení manuálního testování, automatizaci
doručování a také performance nástrojům pro simulaci chování
paralelních uživatelů. Před GoodData byl členem QA týmu v Red Hatu,
kde se zabýval testováním middleware produktů postavených nad JBoss AS
a jejich testování primárně z pohledu clusterování a performance. A
před dávnými lety na škole dělal jako svoji bakalářskou práci CSV
editor pro vývojový nástroj NetBeans.


-- 
S pozdravem Roman "Dagi" Pichlik

/* http://dagblog.cz/ Blog pro kodery */


Re: Spring Security a file upload v login stranke

2011-01-31 Tema obsahu Radovana Straube
Dobry den,

problem vyrieseny. Keby niekoho zaujimalo riesenie, tento clanok dost pomoze: 
http://www.forsthaus.de/blog/?p=397
Zvysok je citanie zdrojakov.

S pozdravom
Radovana Straube

--- On Tue, 1/25/11, Radovana Straube radovana_stra...@yahoo.com wrote:

 From: Radovana Straube radovana_stra...@yahoo.com
 Subject: Spring Security a file upload v login stranke
 To: konference@java.cz
 Date: Tuesday, January 25, 2011, 2:04 PM
 Dobry den,
 
 v ramci rozsirenia funkcionality chcem pridat Spring
 Security 3.1 do starsej aplikacie. Povodna aplikacia ma na
 login stranke nielen meno a heslo, ale aj jeden checkbox a
 fileupload.
 Vygooglila som, ze ked chcem posielat do
 j_spring_security_check viacero poli (aj ich potom zo
 security contextu vediet vycitat), treba prepisat
 AuthenticationProcessingFilter a UserDetailService. V tom
 problem nie je.
 
 Ale ako mam pridat do formulara fileupload, to sa mi
 nepodarilo zistit. Ked nastavim v login formulari
 enctype=multipart/form-data, tak Spring Security nevie
 request spravne precitat. Pravdepodobne vie citat len
 text/plain.
 
 Vedel by ma prosim niekto nasmerovat? Rozdelit login
 stranku na dve stranky bohuzial nesmiem.
 
 Dakujem
 Radovana Straube
 
 
       
 





Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

2010-11-29 Tema obsahu el.wondris

V konfiguraku nic takoveho neni . Pouze nejaky DefaultSpringContextSource...

!-- CONFIGURATION FOR ACTIVE DIRECTORY AUTH. --
!--  --

bean id=springSecurityAuthenticationSource 
class=org.springframework.security.ldap.authentication.SpringSecurityAuthenticationSource
 /

bean id=authenticationSource 
class=org.springframework.ldap.authentication.DefaultValuesAuthenticationSourceDecorator
property name=target 
ref=springSecurityAuthenticationSource /
property name=defaultUser 
value=${ac.default.domain}${ac.default.username} /
property name=defaultPassword value=${ac.default.password} 
/
/bean

bean id=securityContextSource 
class=org.springframework.security.ldap.DefaultSpringSecurityContextSource
constructor-arg 
value=${ac.protocol}://${ac.server.ip}:${ac.server.port} /
property name=authenticationSource 
ref=authenticationSource/
property name=baseEnvironmentProperties
map
entry key=com.sun.jndi.ldap.connect.timeout 
value=${ac.connection.timeout} /
/map
/property
/bean

bean id=userSearch 
class=org.springframework.security.ldap.search.FilterBasedLdapUserSearch
constructor-arg index=0
value${ac.path.users}/value
/constructor-arg
constructor-arg index=1
valuesAMAccountName={0}/value
/constructor-arg
constructor-arg index=2
ref local=securityContextSource /
/constructor-arg
property name=searchSubtree value=true /
/bean

bean id=bindAuthenticator 
class=org.springframework.security.ldap.authentication.BindAuthenticator
constructor-arg
ref local=securityContextSource/
/constructor-arg
property name=userSearch ref=userSearch /
/bean

bean id=ldapAuthoritiesPopulator 
class=org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator
constructor-arg index=0
ref local=securityContextSource /
/constructor-arg
constructor-arg index=1
value${ac.path.groups}/value
/constructor-arg
property name=searchSubtree value=true/
/bean


bean id=userDetailsService 
class=org.springframework.security.ldap.userdetails.LdapUserDetailsService
constructor-arg index=0
ref local=userSearch /
/constructor-arg
constructor-arg index=1
ref local=ldapAuthoritiesPopulator /
/constructor-arg
/bean


bean id=authenticationProvider 
class=org.springframework.security.ldap.authentication.LdapAuthenticationProvider
constructor-arg index=0
ref local=bindAuthenticator /
/constructor-arg
constructor-arg index=1
ref local=ldapAuthoritiesPopulator /
/constructor-arg
/bean

s:authentication-manager alias=authenticationManager
s:authentication-provider ref=authenticationProvider 
user-service-ref=userDetailsService /
/s:authentication-manager

Nechapu, jak to mam nakonfigurat do toho XML? Pouzivam Spring security 3.0.x.

Lukas

__
 Od: Martin Kuba ma...@ics.muni.cz
 Komu: Java konference@java.cz
 Datum: 26.11.2010 17:50
 Předmět: Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

Dne 26.11.2010 08:41, Martin Kuba napsal(a):
 Spring Security jsem nepoužíval, jenom Spring LDAP, ale podle toho popisu 
 soudím,
 že je třeba si vytvořit vlastní implementaci AbstractContextSource, viz
 http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/index.html?org/springframework/ldap/core/support/AbstractContextSource.html
 která se k připojí k LDAP serveru a použije přitom SSL certifikát.

 V něm je třeba se správně autentizovat, popis je na
 http://download.oracle.com/javase/jndi/tutorial/ldap/security/ssl.html
 v části Using Custom Sockets. Je třeba si vytvořit SslSocketFactory, která
 dokáže předložit klientský SSL certifikát. To se dělá zhruba takto:

Tak jsem si to zkusil, a je to tak. V konfiguraci Springu se musí
org.springframework.ldap.core.support.LdapContextSource
nahradit za vlastní implementaci, která musí vypadat nějak takto:

package cz.makub;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ldap.core.support.AbstractContextSource;

import

Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

2010-11-29 Tema obsahu Martin Kuba

Dne 29.11.2010 13:11, el.wond...@centrum.cz napsal(a):


V konfiguraku nic takoveho neni . Pouze nejaky DefaultSpringContextSource...


Tak právě ten bych zkusil vyměnit za ten můj MyContextSource. Oba jsou potomci 
AbstractContextSource
http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/org/springframework/ldap/core/support/AbstractContextSource.html
takže by měli být zaměnitelní.

Pokud by to přesto nešlo, tak bych jako druhou možnost zkusil ten můj 
MyContextSource udělat
jako potomka DefaultSpringContextSource místo AbstractContextSource,
ve skutečnosti jde jenom o to předefinovat metodu getDirContextInstance() tak,
aby podstrčila jako parametr vlastní implementaci SSLSocketFactory.

Makub



Od: Martin Kubama...@ics.muni.cz
Komu: Javakonference@java.cz
Datum: 26.11.2010 17:50
Předmět: Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

Dne 26.11.2010 08:41, Martin Kuba napsal(a):

package cz.makub;
import org.springframework.ldap.core.support.AbstractContextSource;

public class MyContextSource extends AbstractContextSource {


--
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: ma...@ics.muni.cz
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--


Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

2010-11-26 Tema obsahu Martin Kuba

Dne 26.11.2010 08:41, Martin Kuba napsal(a):

Spring Security jsem nepoužíval, jenom Spring LDAP, ale podle toho popisu 
soudím,
že je třeba si vytvořit vlastní implementaci AbstractContextSource, viz
http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/index.html?org/springframework/ldap/core/support/AbstractContextSource.html
která se k připojí k LDAP serveru a použije přitom SSL certifikát.

V něm je třeba se správně autentizovat, popis je na
http://download.oracle.com/javase/jndi/tutorial/ldap/security/ssl.html
v části Using Custom Sockets. Je třeba si vytvořit SslSocketFactory, která
dokáže předložit klientský SSL certifikát. To se dělá zhruba takto:


Tak jsem si to zkusil, a je to tak. V konfiguraci Springu se musí
org.springframework.ldap.core.support.LdapContextSource
nahradit za vlastní implementaci, která musí vypadat nějak takto:

package cz.makub;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ldap.core.support.AbstractContextSource;

import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.ldap.InitialLdapContext;
import javax.net.SocketFactory;
import javax.net.ssl.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.KeyStore;
import java.util.Hashtable;

/**
 * Alternative to LdapContextSource allowing client SSL certificates.
 *
 * @author Martin Kuba ma...@ics.muni.cz
 * @version $Id:$
 * @see org.springframework.ldap.core.support.LdapContextSource
 */
public class MyContextSource extends AbstractContextSource {

final static Logger log = LoggerFactory.getLogger(MyContextSource.class);

private String keyStoreFile;
private String keyStorePassword;

public void setKeyStoreFile(String keyStoreFile) {
this.keyStoreFile = keyStoreFile;
}

public void setKeyStorePassword(String keyStorePassword) {
this.keyStorePassword = keyStorePassword;
}

@SuppressWarnings({unchecked})
@Override
protected DirContext getDirContextInstance(Hashtable env) throws 
NamingException {
String url = (String) env.get(Context.PROVIDER_URL);
try {
if (new URI(url).getScheme().equalsIgnoreCase(ldaps)) {
env.put(java.naming.ldap.factory.socket, 
cz.makub.MyContextSource$MySSLFactory);
MySSLFactory.setManagers(getKeyManagers(), null);
}
} catch (URISyntaxException e) {
log.error(LDAP URL  + url +  is wrong, e);
}
return new InitialLdapContext(env, null);
}

private KeyManager[] getKeyManagers() {
return getKeyManagers(loadKeyStoreFromFile(keyStoreFile, 
keyStorePassword), keyStorePassword);
}

private static KeyManager[] getKeyManagers(KeyStore keyStore, String 
storePassword) {
try {
KeyManagerFactory keyManagerFactory = 
KeyManagerFactory.getInstance(SunX509);
keyManagerFactory.init(keyStore, storePassword != null ? 
storePassword.toCharArray() : null);
return keyManagerFactory.getKeyManagers();
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage(), ex);
}
}

private static KeyStore loadKeyStoreFromFile(String ksfile, String 
password) {
String kstype;
if (ksfile.endsWith(.jks)) {
kstype = JKS;
} else if (ksfile.endsWith(.p12)) {
kstype = PKCS12;
} else {
throw new RuntimeException(keystore file name  + ksfile +  must end 
with .ks (JKS) or .p12 (PKCS12));
}
try {
KeyStore store = KeyStore.getInstance(kstype);
store.load(new FileInputStream(ksfile), password != null ? 
password.toCharArray() : null);
return store;
} catch (Exception ex) {
throw new RuntimeException(ex.getMessage(), ex);
}
}

/**
 * SSL SocketFactory enabling client certificates and customs server checks.
 */
@SuppressWarnings({UnusedDeclaration})
public static class MySSLFactory extends SocketFactory {

final static MySSLFactory thisFactory = new MySSLFactory();

static SSLSocketFactory factory = (SSLSocketFactory) 
SSLSocketFactory.getDefault();

public static void setManagers(KeyManager[] keyManagers, TrustManager[] 
trustManagers) {
try {
SSLContext sctx = SSLContext.getInstance(TLS);
sctx.init(keyManagers, trustManagers, null);
factory = sctx.getSocketFactory();
} catch (Exception ex) {
ex.printStackTrace();
}
}

public static SocketFactory getDefault() {
return thisFactory;
}

@Override
public Socket createSocket() throws IOException {
return factory.createSocket

Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

2010-11-25 Tema obsahu el.wondris

Ahoj Javisti. Potreboval bych poradit s problemem, kdy je potreba se 
autentizovat/autorizovat LDAPem pres SSL za pouziti certifikatu pomoci Spring 
security. Od zakaznika jsem dostal certifikaty, ktere mam pouzit. Vubec 
netusim, jak a hlavne kam se ty certifikaty musi nacpat(JDK, Tomcat,...??), aby 
se pri autentizaci ty certifikaty pouzili. Muzete mi nekdo poradit? Popripade 
hodit nejaky link s prikladem.

Predem dik,
Lukas


Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

2010-11-25 Tema obsahu Tomas Vojtech
Pokud se jedná o serverový certifikát tak ten se pomocí keytool dá do 
JKS keystoru a cesta k tomu jks se nastaví jako truststoreFile u 
konektoru tomcata v server.xml.


On 11/25/2010 05:58 PM, el.wond...@centrum.cz wrote:

Ahoj Javisti. Potreboval bych poradit s problemem, kdy je potreba se 
autentizovat/autorizovat LDAPem pres SSL za pouziti certifikatu pomoci Spring 
security. Od zakaznika jsem dostal certifikaty, ktere mam pouzit. Vubec 
netusim, jak a hlavne kam se ty certifikaty musi nacpat(JDK, Tomcat,...??), aby 
se pri autentizaci ty certifikaty pouzili. Muzete mi nekdo poradit? Popripade 
hodit nejaky link s prikladem.

Predem dik,
Lukas

   




Re: Spring security 3.0.x + LDAP pres SSL za pouziti certifikatu

2010-11-25 Tema obsahu Martin Kuba

Dne 25.11.2010 17:58, el.wond...@centrum.cz napsal(a):


Ahoj Javisti. Potreboval bych poradit s problemem, kdy je potreba se 
autentizovat/autorizovat LDAPem pres SSL za pouziti certifikatu pomoci Spring 
security. Od zakaznika jsem dostal certifikaty, ktere mam pouzit. Vubec 
netusim, jak a hlavne kam se ty certifikaty musi nacpat(JDK, Tomcat,...??), aby 
se pri autentizaci ty certifikaty pouzili. Muzete mi nekdo poradit? Popripade 
hodit nejaky link s prikladem.


Předpokládám, že se tím myslí klientské SSL certifikáty pro přístup k LDAP 
serveru,
vůči kterému se ověří username a heslo uživatele, tj. to co je popsáno na
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ldap.html#ldap-context-source
a ne třeba klientský SSL certifikát v uživatelově browseru, to by byla úplně 
jiná pohádka.

Spring Security jsem nepoužíval, jenom Spring LDAP, ale podle toho popisu 
soudím,
že je třeba si vytvořit vlastní implementaci AbstractContextSource, viz
http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/index.html?org/springframework/ldap/core/support/AbstractContextSource.html
která se k připojí k LDAP serveru a použije přitom SSL certifikát.

V něm je třeba se správně autentizovat, popis je na
http://download.oracle.com/javase/jndi/tutorial/ldap/security/ssl.html
v části Using Custom Sockets. Je třeba si vytvořit SslSocketFactory, která
dokáže předložit klientský SSL certifikát. To se dělá zhruba takto:

SSLContext sc = SSLContext.getInstance(SSL);
TrustManager[] myTrustManager = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}

public void checkClientTrusted(X509Certificate[] certs, 
String authType) {
//není potřeba u klienta
}

public void checkServerTrusted(X509Certificate[] certs, 
String authType) {
//jen pokud chci ověřovat server
}
}
};
KeyManager[] myKeyManager = new KeyManager[] {
new X509KeyManager() {
public String[] getClientAliases(String s, Principal[] 
principals) {
}

public String chooseClientAlias(String[] strings, 
Principal[] principals, Socket socket) {
}

public String[] getServerAliases(String s, Principal[] 
principals) {
}

public String chooseServerAlias(String s, Principal[] 
principals, Socket socket) {
}

public X509Certificate[] getCertificateChain(String s) {
}

public PrivateKey getPrivateKey(String s) {
}
}
};
sc.init(myKeyManager, myTrustManager, new java.security.SecureRandom());
SSLSocketFactory sslSocketFactory = sc.getSocketFactory();

samozřejmě je třeba naimplementovat metody pro TrustManager a KeyManager tak,
aby se ověřil saerver a předložil klientský SSL certifikát.

Makub
--
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: ma...@ics.muni.cz
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--


Re: websphere-webservice-security

2010-07-13 Tema obsahu Oto Buchta
2010/6/25 jerzy.burzek jerzy.bur...@zoznam.sk:
 Ako teda zabezpecit sluzby a data?
 Zatial ma napadli (a docital som sa) o 2 rieseniach:
 1) prejst z HTTP na HTTPS, co v principe asi nebude problem
 2) SOAP body encryption

Presne o tomto je WS-Security. http://en.wikipedia.org/wiki/WS-Security

Jakeho mas klienta? Axis2 to sveho casu kompletne pekne
implementoval... (http://ws.apache.org/wss4j/)

 A prave s 2) mam problem. Server si nastavim
 (podlahttp://www.ibm.com/developerworks/websphere/library/techarticles/0505_cowan/0505_cowan.html#N101C7),
 klienta neviem ako

Pokud se jedna o komunikaci XML-XML, pak wss4j je opravdu to, co hledas.

-- 
Oto 'tapik' Buchta, ta...@buchtovi.cz, http://tapikuv.blogspot.com


Spring security (acegi)

2009-11-27 Tema obsahu Ivan Polak
Zdravim konferenciu,

chcel by som vo svojom projekte pouzit Spring security (acegi), ale
prihlasovaciu obrazovku nemam login.jsp ale login.action. tento
controller LoginController je odvodeny od
ParameterizableViewController a do modelu (v metode
handleRequestInternal) umiestnuje nejake informacie, ktore sa
zobrazuju na prihlasovacej obrazovke (samozrejme je tam aj login
formular):

form action=employer/j_spring_security_check method=post
table border=1
trtdPrihlasovacie meno:/tdtdinput type=text
name=j_username tabstop=1/td/tr
trtdHeslo:/tdtdinput type=password name=j_password
tabstop=2/td/tr
trtd colspan=2 align=centerinput class=button type=submit
value=Prihlasit tabstop=3/td/tr
/table
/form

ked zadam meno a heslo a stlacim Prihlasit, vsetko v poriadku
prebehne (interceptory zafunguju), aj ma spravne presmeruje, ale
vykonava sa aj znova controller LoginController a metoda
handleRequestInternal co ale ja nechcem.

je mozne tomuto nejako zabranit. bohuzial nemozem pouzit login.jsp ,
prihlasovacia obrazovka musi byt riesena cez controller.

dakujem

Ivan


Re: spring security - vlastny uzivatelia

2009-07-16 Tema obsahu Rastislav Siekel




Odpoviem si sám, aspoň do archívu konferencie:

1. Vytvorím si vlastnú implementáciu AuthenticationProvider kde
implementujem metódu authenticate().
public class MyAuthenticationProvider implements
AuthenticationProvider
{
    /** */
    public Authentication authenticate(Authentication authentication)
throws AuthenticationException
    {
        ...Doplniť autentifikáciu pomocou mojej service...
        authentication.setAuthenticated(true);
        return authentication;
    }

    /** */
    public boolean supports(Class authentication) {
    return
(MyAuthenticationToken.class.isAssignableFrom(authentication));
    }
}

2. Vytvorím si vlastnú implementáciu AbstractAuthenticationToken kde
prepíšem metódu getAuthorities() - keďže default sa vždy
vytvorí RoleVoter, ten práve pracuje s rolami z tejto metódy.
public class MyAuthenticationToken extends
AbstractAuthenticationToken
{
    @Override
    public GrantedAuthority[] getAuthorities()
    {
       ... Zistiť si role pomocou mojej service ako
String[]...
       ... vrátiť role obalené do GrantedAuthority[]...
    }
}

3. Do applicationContext-security.xml nastavím môjho provider-a:
    bean id="myAuthenticationProvider"
class="sk.nieco.MyAuthenticationProvider"
        security:custom-authentication-provider /
    /bean

4. Do aplikácie sa prihlásim kódom:
       ...
        Authentication authentication = new
MyAuthenticationToken(name, password, mac);
   
SecurityContextHolder.getContext().setAuthentication(authentication);
       ...

5. Ak sa použije tag security:remember-me /, treba
nadefinovať nejakú UserDetailsService.


Aké jednoduché :-)

Rastislav "Bedo" Siekel


 

 Ing. Rastislav Siekel 
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia 
E-mail : 
sie...@prosoft.sk  
Tel : 041/562 54 91 
Fax : 041/562 54 97 
Mobil : 0905 34 00 20



Rastislav Siekel wrote:
Ahojte,
  
začínam so Spring security a neviem sa akosi vymotať z tých
AuthenticationProvider-ov a AccessDecisionVoter-ov.
  
Mám aplikáciu, ktorá si autentifikáciu a autorizáciu rieši vlastnými
prostriedkami. Pre autentifikáciu - login(String name, String
password, String mac). Pre autorizáciu tam je metóda, ktorá mi
vráti, či prihlásený užívateľ je v niektorej z rolí - konkrétne isUserInRole(String
user, String[] roles).
  
Pri prechode na Spring security predpokladám, že urobím implementáciu AuthenticationProvider-a,
kde si budem interne volať tieto metódy, ale tam sa interne používa
interface Authentication, ktorý má mnoho implementácii xxxToken
a ešte sa v konfigurácii používa interface AccessDecisionVoter,
ktorý má tiež kopec implementácii xxxVoter priamo v Spring
security.
  
Neviete ma niekto nakopnúť čím začať, prípadne aspoň linku na nejaký
príklad, pretože príklady priamo pri Spring security sú len 2 a žiadny
z nich nepoužíva tento prístup. Ani priateľ Google neponúka žiadny
príklad na vlastnú implementáciu :-(.
  
Dík,
Rastislav "Bedo" Siekel.
  





spring security - vlastny uzivatelia

2009-07-13 Tema obsahu Rastislav Siekel




Ahojte,

začínam so Spring security a neviem sa akosi vymotať z tých
AuthenticationProvider-ov a AccessDecisionVoter-ov.

Mám aplikáciu, ktorá si autentifikáciu a autorizáciu rieši vlastnými
prostriedkami. Pre autentifikáciu - login(String name, String
password, String mac). Pre autorizáciu tam je metóda, ktorá mi
vráti, či prihlásený užívateľ je v niektorej z rolí - konkrétne isUserInRole(String
user, String[] roles).

Pri prechode na Spring security predpokladám, že urobím implementáciu AuthenticationProvider-a,
kde si budem interne volať tieto metódy, ale tam sa interne používa
interface Authentication, ktorý má mnoho implementácii xxxToken
a ešte sa v konfigurácii používa interface AccessDecisionVoter,
ktorý má tiež kopec implementácii xxxVoter priamo v Spring
security.

Neviete ma niekto nakopnúť čím začať, prípadne aspoň linku na nejaký
príklad, pretože príklady priamo pri Spring security sú len 2 a žiadny
z nich nepoužíva tento prístup. Ani priateľ Google neponúka žiadny
príklad na vlastnú implementáciu :-(.

Dík,
Rastislav "Bedo" Siekel.





Re: spring security - vlastny uzivatelia

2009-07-13 Tema obsahu Karel Tejnora
Zdrojáky spring-security a samples. Není to težké pochopit co je co.
Něco podobného jsem teď dělal bez in-depth znalosti stylem copy and
paste.



Re: Jersey a Spring security bez Spring frameworku

2008-12-30 Tema obsahu Tomáš Procházka
Zdravím,
odpovídám na zprávu z úterka, 30. prosince 2008,
kterou Josef Cacek napsal(a) v 0:00:08:

Díky moc, něco takového by mohlo pomoci, ještě kdyby se to do té
Jersey třídy dalo dostat přímo přes anotaci @Context.

Akurát mě trochu zaráží:
SecurityFilter only supports FORM (FORM authentication is supported in all 
release versions of SecurityFilter) and BASIC (not quite yet -- BASIC 
authentication will be supported in an upcoming 1.1 release) authentication.

BASIC HTTP AUTH, je přesně to co potřebuju. I když FORM asi bude
stačit.

Podívám se na to podrobněji a uvidím, i ten blog by mohl pomoci.
   

--- Původní zpráva ---
 Odesilatel: Josef Cacek josef.ca...@gmail.com
Předmět: Jersey a Spring security bez Spring frameworku
  Datum: 30. prosince 2008, 00:00:08 (GMT +0100)
Přílohy: none
  msgid:d2f0b05d0812291500i7b872edembcecf94b4b333...@mail.gmail.com

J Ahojte,

J 2008/12/29 Tomáš Procházka t.procha...@centrum.cz:
 Mám Wenbovou aplikaci postavenou nad Wicketem, součástí je také
 restové rozhraní vytvořené pomoci Jersey knihovny. Potřeboval by ještě
 přidat HTTP autorizaci pro přístup k tomu RESTu jen pro registrované
 uživatel? Nevíte někdo jak nejsnáze na to?

 Někde jsem se dočetl, že se dá použít Spring Security.
J ...
 Neexistuje jednodušší řešení?

J Zkuste se podívat, jestli by vám nestačil SecurityFilter.
J http://securityfilter.sourceforge.net/

J Kdysi jsem si o něm udělal pár řádek v blogu.
J http://javlog.cacek.cz/2007/10/zabezpeen-webovch-aplikac.html

  Tomáš Procházka

J -- pepa cacek

 Konec původní zprávy 

-- 
-
 Tomáš Procházka


 E-mail: t.procha...@centrum.cz
WWW: http://www.atomsoft.cz
ICQ: 87147320
-



Jersey a Spring security bez Spring frameworku

2008-12-29 Tema obsahu Tomáš Procházka
Zdravím.

Mám Wenbovou aplikaci postavenou nad Wicketem, součástí je také
restové rozhraní vytvořené pomoci Jersey knihovny. Potřeboval by ještě
přidat HTTP autorizaci pro přístup k tomu RESTu jen pro registrované
uživatel? Nevíte někdo jak nejsnáze na to?

Někde jsem se dočetl, že se dá použít Spring Security. Nášel jsem
několik relativně jednoduchých tutoriálů. Stačí přidat pár souborů do
web.xml a vytvořit jeden nový konf. xml soubor. Jenže všechno počítá s
tím, že toto přidávám do aplikace postavené nad Spring Frameworkem.
Takže mě to nutí do projektu nejenom přidat další spoustu dependencí,
ale ještě nastudovat a inicializovat spoustu dalších věcí.

Jinak to skončí jen chybou:

java.lang.IllegalStateException: No WebApplicationContext found: no 
ContextLoaderListener registered?


Přes což jsem se dostal přidáním

listener

listener-classorg.springframework.web.context.ContextLoaderListener/listener-class
/listener


do web.xml, ale teď zase končím chybou:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 
'springSecurityFilterChain' is defined
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:387)


Neexistuje jednodušší řešení?

Potřebuju získat jen HTTP autorizaci dle údajů v DB a přístup k
session údajům přihlášeného uživatele.

Zajímavý článek jsem našel zde:
http://weblogs.java.net/blog/mhadley/archive/2008/03/authentication.html

ten ale vyžaduje přechod na Glasfish a já se doposud snažil aplikaci
udržovat funkční na libovolném aplikačním serveru, jako Tomcat a
Jetty. Hlavně asi proto, že z přes Jetty se dá aplikace velmi snadno
spustit přes přímo přes Maven. Možná že by to šlo i u GlassFish...

Díky za každou radu

   

   
Datum: 23:18:5129. prosince 2008
-- 
-
 Tomáš Procházka


 E-mail: t.procha...@centrum.cz
WWW: http://www.atomsoft.cz
ICQ: 87147320
-



RE: Jersey a Spring security bez Spring frameworku

2008-12-29 Tema obsahu Jan Moravec
Co takhle jednoduchy servlet filter?
H.

 -Původní zpráva-
 Od: konference-boun...@java.cz 
 [mailto:konference-boun...@java.cz] za uživatele Tomáš Procházka
 Odesláno: Monday, December 29, 2008 23:29
 Komu: konference@java.cz
 Předmět: Jersey a Spring security bez Spring frameworku
 
 
 Zdravím.
 
 Mám Wenbovou aplikaci postavenou nad Wicketem, součástí je 
 také restové rozhraní vytvořené pomoci Jersey knihovny. 
 Potřeboval by ještě přidat HTTP autorizaci pro přístup k tomu 
 RESTu jen pro registrované uživatel? Nevíte někdo jak nejsnáze na to?
 
 Někde jsem se dočetl, že se dá použít Spring Security. Nášel 
 jsem několik relativně jednoduchých tutoriálů. Stačí přidat 
 pár souborů do web.xml a vytvořit jeden nový konf. xml 
 soubor. Jenže všechno počítá s tím, že toto přidávám do 
 aplikace postavené nad Spring Frameworkem. Takže mě to nutí 
 do projektu nejenom přidat další spoustu dependencí, ale 
 ještě nastudovat a inicializovat spoustu dalších věcí.
 
 Jinak to skončí jen chybou:
 
 java.lang.IllegalStateException: No WebApplicationContext 
 found: no ContextLoaderListener registered?
 
 
 Přes což jsem se dostal přidáním
 
 listener
 
 listener-classorg.springframework.web.context.ContextLoaderL
 istener/listener-class
 /listener
 
 
 do web.xml, ale teď zase končím chybou:
 
 org.springframework.beans.factory.NoSuchBeanDefinitionExceptio
 n: No bean named 'springSecurityFilterChain' is defined
 at 
 org.springframework.beans.factory.support.DefaultListableBeanF
 actory.getBeanDefinition(DefaultListableBeanFactory.java:387)
 
 
 Neexistuje jednodušší řešení?
 
 Potřebuju získat jen HTTP autorizaci dle údajů v DB a přístup 
 k session údajům přihlášeného uživatele.
 
 Zajímavý článek jsem našel zde: 
 http://weblogs.java.net/blog/mhadley/archive/2008/03/authentic
ation.html

ten ale vyžaduje přechod na Glasfish a já se doposud snažil aplikaci
udržovat funkční na libovolném aplikačním serveru, jako Tomcat a Jetty.
Hlavně asi proto, že z přes Jetty se dá aplikace velmi snadno spustit přes
přímo přes Maven. Možná že by to šlo i u GlassFish...

Díky za každou radu

   

   
Datum: 23:18:5129. prosince 2008
-- 
-
 Tomáš Procházka


 E-mail: t.procha...@centrum.cz
WWW: http://www.atomsoft.cz
ICQ: 87147320
-



Re: Jersey a Spring security bez Spring frameworku

2008-12-29 Tema obsahu Josef Cacek
Ahojte,

2008/12/29 Tomáš Procházka t.procha...@centrum.cz:
 Mám Wenbovou aplikaci postavenou nad Wicketem, součástí je také
 restové rozhraní vytvořené pomoci Jersey knihovny. Potřeboval by ještě
 přidat HTTP autorizaci pro přístup k tomu RESTu jen pro registrované
 uživatel? Nevíte někdo jak nejsnáze na to?

 Někde jsem se dočetl, že se dá použít Spring Security.
...
 Neexistuje jednodušší řešení?

Zkuste se podívat, jestli by vám nestačil SecurityFilter.
http://securityfilter.sourceforge.net/

Kdysi jsem si o něm udělal pár řádek v blogu.
http://javlog.cacek.cz/2007/10/zabezpeen-webovch-aplikac.html

  Tomáš Procházka

-- pepa cacek


Re: Spring (Acegi) Security zmena a vynuceni https

2008-07-03 Tema obsahu Karel Tejnora
Tak to jde, protoze jsem slepej jak patrona - pro
IS_AUTHENTICATED_ANONYMOUSLY uzivatele sem si nastavil requires http a i
kdyz jsem pred to dal IS_AUTHENTICATED_FULLY requires https vracelo mne
to http. Tak sem smazal requires=http a funguje to - jenom kdyz nahodou
zmeni url na http tak si pojede dal.
ale on na to browser upozorni...





Re: Spring (Acegi) Security zmena a vynuceni https

2008-07-03 Tema obsahu Ing. Jan Novotný
K čemu v tomto případě používáte HTTPS protokol? Aby se nedalo odchytit
heslo nebo k tomu aby byl chráněna session přihlášeného uživatele proti
zneužití (Session hijacking http://en.wikipedia.org/wiki/Session_hijacking)?
Protože pokud vám jde o to druhé, tak vámi uvedený způsob (pokud nemáte nějakou
další 
kontroluhttp://blog.novoj.net/2007/06/05/sdileni-session-mezi-protokoly-http-a-https/)
nebude nic platný. Session cookie totiž budete mít pravděpodobně již
vytvořenou od prvního requestu HTTP protokolem a tudíž bude odchytitelná.
Útočník sice potom nezjistí heslo pro přihlášení, ale pokud to původní
uživatel udělá za něj, bude mít k dispozici autentizovanou session díky této
nechráněné cookie. Cestou je mít kompletně celý web na HTTPS, ale to
generuje jistý overhead pro server, a nebo implementovat další ochrany proti
odchycení session id.

Možná to máte ošetřené, ale pro jistotu upozorňuji na tuhle možnost.

Honza Novotný

Dne 3. červenec 2008 15:43 Karel Tejnora [EMAIL PROTECTED] napsal(a):
 Tak to jde, protoze jsem slepej jak patrona - pro
 IS_AUTHENTICATED_ANONYMOUSLY uzivatele sem si nastavil requires http a i
 kdyz jsem pred to dal IS_AUTHENTICATED_FULLY requires https vracelo mne
 to http. Tak sem smazal requires=http a funguje to - jenom kdyz nahodou
 zmeni url na http tak si pojede dal.
 ale on na to browser upozorni...







-- 
--
Ing. Jan Novotný
@@
http://blog.novoj.net
Myšlenky dne otce Fura
--


Re: Spring (Acegi) Security zmena a vynuceni https

2008-07-03 Tema obsahu Karel Tejnora
 uživatele proti zneužití (Session hijacking)? Protože pokud vám jde o 
Jo jo - to ma spring security v sobe - posle se username a heslo pres
HTTPS a pokud se spravne zaloguje (resi se to ve filtru) Session se
vytvori nova a zkopiruje data z te stare (tu zahodi). Takze to
jsessionid (cookie nebo param) se zmeni a nahradi za nove, ktere neni
zname.
Ceho sem chtel dosahnout je to, aby kdyz nejakym zpusobem (bookmark)
uzivatel, ktery je authentifikovany vleze zpatky na http a tim posle
sessionId nechrane, mu aplikace naplacala pres ruku napr. 403 Access
Denied a zaroven zinvalidovala jeho session.

A ted mne napada - posila Ajax ktery je z https stranky pres https?

Karel



Re: Acegi security

2008-01-23 Tema obsahu radovan deka
diky moc za vase odpovedi, jeste bych se chtel zeptat, zda se v teto tride:

public class MyAuthListener implements ApplicationListener, InitializingBean {

   public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof InteractiveAuthenticationSuccessEvent) {
 final Authentication tmpAuth = 
SecurityContextHolder.getContext().getAuthentication();
 log.debug(InteractiveAuthenticationSuccessEvent:  + 
tmpAuth.getName());
 if (tmpAuth.getDetails() instanceof WebAuthenticationDetails) {
   final WebAuthenticationDetails webDetails =
 (WebAuthenticationDetails) tmpAuth.getDetails();
   
userDao.logAuthenticationSuccess(tmpAuth.getName(),webDetails.getRemoteAddress());
 } else {
   log.warn(Authentication.getDetails() not instance of 
WebAuthenticationDetails: 
   + tmpAuth.getDetails());
 }
}
}

}

da nejekym zpusobem dostat na httpSession?


  Původní zpráva 
 Od: Josef Cacek [EMAIL PROTECTED]
 Předmět: Re: Acegi security
 Datum: 23.1.2008 09:20:08
 
 Ahojte,

 2008/1/23 radovan deka [EMAIL PROTECTED]:
  Ahoj, rozhodl jsem se zkusit pouzit Acegi security na autentizaci uzivatelu.
 Autentizace funguje ok, jen nevim jak vyresit pozadavek na ulozeni IP adresy
 uzivatele a cas, pri kazde uspesne autentizaci.

 zrovna včera jsem přemýslel o tom, že bych o tomhle mohl napsat něco
 do blogu, tak jste to uspíšil. Jedno z řešení (využití
 ApplicationListeneru) je popsáno zde:

 http://javlog.cacek.cz/2008/01/acegi-logujeme-loginy.html

 -- pepa cacek
 http://javlog.cacek.cz/





Re: Acegi security

2008-01-23 Tema obsahu Josef Cacek
Ahojte,

2008/1/23 radovan deka [EMAIL PROTECTED]:
 diky moc za vase odpovedi, jeste bych se chtel zeptat, zda se v teto tride:

 public class MyAuthListener implements ApplicationListener, InitializingBean {
...
 da nejekym zpusobem dostat na httpSession?

Myslím, že to není možné. Z instance WebAuthenticationDetails máte
možnost získat pouze sessionId, ale vlastní session objekt ne.
Nevím na co session potřebujete, ale zvážil bych buď použití session
scoped beanu, anebo vytvoření servlet filtru, který by vám do
ThreadLocal proměnné v nějakém SessionHolderu ukládal aktuální
session.

-- pepa cacek
http://javlog.cacek.cz/


Acegi security

2008-01-22 Tema obsahu radovan deka
Ahoj, rozhodl jsem se zkusit pouzit Acegi security na autentizaci uzivatelu. 
Autentizace funguje ok, jen nevim jak vyresit pozadavek na ulozeni IP adresy 
uzivatele a cas, pri kazde uspesne autentizaci.

Vygooglil sem, ze je potreba rozsirit tridu AuthenticationProcessingFilter, ale 
nevim, jak v teto tride poznam, jestli autentizace byla uspesna.

Pak sem jeste narazil na moznost vytvorit listenera, ktery implementuje 
ApplicationListener. V tomto pripde by nebyl problem ulozit ten cas, ale zas 
nevim jak zjistit IP adresu.


Re: Acegi security

2008-01-22 Tema obsahu Tomas Vojtech

ahoj,
v metode doFilter se vola metoda attemptAuthentication, kdyz neprojde 
autentizace tak by se mela vyhodit vyjimka, kdyz projde tak ta metoda 
vrati object Authentication, takze asi poupravit doFilter, berte to ale 
s rezervou, nemam to nijak podlozene, jenom sem se ted dival do kodu 
toho filtru


Tomas

radovan deka wrote:

Ahoj, rozhodl jsem se zkusit pouzit Acegi security na autentizaci uzivatelu. 
Autentizace funguje ok, jen nevim jak vyresit pozadavek na ulozeni IP adresy 
uzivatele a cas, pri kazde uspesne autentizaci.

Vygooglil sem, ze je potreba rozsirit tridu AuthenticationProcessingFilter, ale 
nevim, jak v teto tride poznam, jestli autentizace byla uspesna.

Pak sem jeste narazil na moznost vytvorit listenera, ktery implementuje 
ApplicationListener. V tomto pripde by nebyl problem ulozit ten cas, ale zas 
nevim jak zjistit IP adresu.

__ Information from ESET Smart Security, version of virus signature 
database 2815 (20080122) __

The message was checked by ESET Smart Security.

http://www.eset.com



  




Re: Acegi security

2008-01-22 Tema obsahu Ing. Jan Novotný
V předkovi třídy AuthenticationProcessingFilter je deklarována metoda:

protected void onSuccessfulAuthentication(HttpServletRequest request,
HttpServletResponse response,
Authentication authResult) throws IOException {}

Ta má vše co potřebujete. Udělal bych tedy potomka
AuthenticationProcessingFilter, přepsal výše zmíněnou metodu a IP
adresu si uložil. Pokud byste si ji chtěl ukládat přímo do objektu
Authentication, který je přístupný přes security kontext, možná bych
zvažoval rozšíření metody:

/**
 * Provided so that subclasses may configure what is put into the
authentication request's details
 * property.
 *
 * @param request that an authentication request is being created for
 * @param authRequest the authentication request object that
should have its details set
 */
protected void setDetails(HttpServletRequest request,
UsernamePasswordAuthenticationToken authRequest) {

authRequest.setDetails(authenticationDetailsSource.buildDetails(request));
}

Více určitě objevíte ve zdrojácích Acegi ;-)

Honza N.

23.1.08, Tomas Vojtech [EMAIL PROTECTED]:
 ahoj,
 v metode doFilter se vola metoda attemptAuthentication, kdyz neprojde
 autentizace tak by se mela vyhodit vyjimka, kdyz projde tak ta metoda
 vrati object Authentication, takze asi poupravit doFilter, berte to ale
 s rezervou, nemam to nijak podlozene, jenom sem se ted dival do kodu
 toho filtru

 Tomas

 radovan deka wrote:
  Ahoj, rozhodl jsem se zkusit pouzit Acegi security na autentizaci 
  uzivatelu. Autentizace funguje ok, jen nevim jak vyresit pozadavek na 
  ulozeni IP adresy uzivatele a cas, pri kazde uspesne autentizaci.
 
  Vygooglil sem, ze je potreba rozsirit tridu AuthenticationProcessingFilter, 
  ale nevim, jak v teto tride poznam, jestli autentizace byla uspesna.
 
  Pak sem jeste narazil na moznost vytvorit listenera, ktery implementuje 
  ApplicationListener. V tomto pripde by nebyl problem ulozit ten cas, ale 
  zas nevim jak zjistit IP adresu.
 
  __ Information from ESET Smart Security, version of virus signature 
  database 2815 (20080122) __
 
  The message was checked by ESET Smart Security.
 
  http://www.eset.com
 
 
 
 




-- 
--
Ing. Jan Novotný
@@
http://blog.novoj.net
Myšlenky dne otce Fura
--


jaky security framework?

2007-07-09 Tema obsahu Martin Beránek

Zdravím konferenci,

potřeboval bych doporučit něco jako security framework. Chtěl bych 
určité metody oběktů zabezpečit na uživatelské role. něco jako:


public void someMethod() {
Security.checkRole(admin,poweruser);
...
...
...
}

kde by Security.checkRole mohlo vyhodit nějakou SecurityException.

koukal sem na jaas, ale tam se mi nelibi že jakmile to jednou zapnu, 
aplikuje se to všude.


díky za návrhy

--
Martin Beránek



smime.p7s
Description: S/MIME Cryptographic Signature


RE: jaky security framework?

2007-07-09 Tema obsahu Tomas Hubalek
To co chcete se da naprosto perfektne udelat pomoc AOP. 

Proste metode priradite aspekt, ktery to vynuti.

Tom

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
 Behalf Of Martin Beránek
 Sent: Monday, July 09, 2007 3:00 PM
 To: Java
 Subject: jaky security framework?
 
 Zdravím konferenci,
 
 potřeboval bych doporučit něco jako security framework. Chtěl bych
 určité metody oběktů zabezpečit na uživatelské role. něco jako:
 
 public void someMethod() {
 Security.checkRole(admin,poweruser);
 ...
 ...
 ...
 }
 
 kde by Security.checkRole mohlo vyhodit nějakou SecurityException.
 
 koukal sem na jaas, ale tam se mi nelibi že jakmile to jednou zapnu,
 aplikuje se to všude.
 
 díky za návrhy
 
 --
 Martin Beránek



Re: jaky security framework?

2007-07-09 Tema obsahu Martin Beránek
Jasne... ale budu to psat cele od zacatku. Spise jestli uz neni neco 
hotoveho (at uz je to postavne na aspektech nebo ne) - a to se stale 
bavime pouze o overeni user in role. Ale cela ta maskarada okolo jako 
je security context je vec o neco slozitejsi.


Tomas Hubalek napsal(a):
To co chcete se da naprosto perfektne udelat pomoc AOP. 


Proste metode priradite aspekt, ktery to vynuti.



--
Martin Beránek




smime.p7s
Description: S/MIME Cryptographic Signature


Re: jaky security framework?

2007-07-09 Tema obsahu Petr Gola

Zdravim,

koukal jsi po acegi-security? Nejsem si jisty, jestli je tak jednoduche ho
pouzit i mimo spring, ale jinak muzu vrele doporucit :)

S pozdravem Petr Gola

On 09/07/07, Martin Beránek [EMAIL PROTECTED] wrote:


Jasne... ale budu to psat cele od zacatku. Spise jestli uz neni neco
hotoveho (at uz je to postavne na aspektech nebo ne) - a to se stale
bavime pouze o overeni user in role. Ale cela ta maskarada okolo jako
je security context je vec o neco slozitejsi.

Tomas Hubalek napsal(a):
 To co chcete se da naprosto perfektne udelat pomoc AOP.

 Proste metode priradite aspekt, ktery to vynuti.


--
Martin Beránek






Re: jaky security framework?

2007-07-09 Tema obsahu Pa Ko

Co presne vam na jaas vadi? Me pripadlo jako super volba, narozdil od acegi
- no flame ;-)



2007/7/9, Martin Beránek [EMAIL PROTECTED]:


Zdravím konferenci,

potřeboval bych doporučit něco jako security framework. Chtěl bych
určité metody oběktů zabezpečit na uživatelské role. něco jako:

public void someMethod() {
Security.checkRole(admin,poweruser);
...
...
...
}

kde by Security.checkRole mohlo vyhodit nějakou SecurityException.

koukal sem na jaas, ale tam se mi nelibi že jakmile to jednou zapnu,
aplikuje se to všude.

díky za návrhy

--
Martin Beránek





Re: jaky security framework?

2007-07-09 Tema obsahu Rodina Novotných
No já bych otázku postavil trochu jinak - co vám dá JAAS co nedokáže 
Acegi? no flame ;-)
Ze své zkušenosti musím říct, že nasazení Acegi je otázka půl dne až 
jednoho dne bezproblémové a zábavné práce. Odměnou jsou pak takové 
vítané drobnůstky jako RememberMe funkcionalita zdarma, Channel 
procesing (zaručí přístup na konkrétní url buď pouze přes HTTPS nebo 
naopak jen HTTP) a perfektní extensibilita (což se u vendor specific 
věcí nedá moc očekávat).
Vřele doporučuji Acegi - byť jsem ho zatím používal jen na autentizaci a 
nikoliv autorizaci.


Honza N.

--
Ing. Jan Novotný
@@
http://blog.novoj.net
Myšlenky dne otce Fura
--



Pa Ko napsal(a):
Co presne vam na jaas vadi? Me pripadlo jako super volba, narozdil od 
acegi - no flame ;-)




2007/7/9, Martin Beránek [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED]:


Zdravím konferenci,

potřeboval bych doporučit něco jako security framework. Chtěl bych
určité metody oběktů zabezpečit na uživatelské role. něco jako:

public void someMethod() {
Security.checkRole(admin,poweruser);
...
...
...
}

kde by Security.checkRole mohlo vyhodit nějakou SecurityException.

koukal sem na jaas, ale tam se mi nelibi že jakmile to jednou zapnu,
aplikuje se to všude.

díky za návrhy

--
Martin Beránek





Re: jaky security framework?

2007-07-09 Tema obsahu Pa Ko

Fajn :) nejsem si tim jist, ale rekl bych ze acegi nedokaze neco jako
superuser mod.
Myslim tim, ze jaas je primo intergrovany do javy, muzu timpadem spustit kod
treba s opravnenim allpermission.

Pro nekoho to muze byt nevyhoda, me to prijde jako vyhoda :)

No a s tim dratovanim - da se to udelat pomoci proxy trid, ale tipoval bych,
ze urcite bude nekde k nalezeni nejakej weaver, kterej bude brat xml
konfiguraci
a nacitat zabezpecene tridy...

9.7.07, Rodina Novotných [EMAIL PROTECTED]:


No já bych otázku postavil trochu jinak - co vám dá JAAS co nedokáže
Acegi? no flame ;-)
Ze své zkušenosti musím říct, že nasazení Acegi je otázka půl dne až
jednoho dne bezproblémové a zábavné práce. Odměnou jsou pak takové vítané
drobnůstky jako RememberMe funkcionalita zdarma, Channel procesing (zaručí
přístup na konkrétní url buď pouze přes HTTPS nebo naopak jen HTTP) a
perfektní extensibilita (což se u vendor specific věcí nedá moc očekávat).
Vřele doporučuji Acegi - byť jsem ho zatím používal jen na autentizaci a
nikoliv autorizaci.

Honza N.

-- Ing. Jan Novotný 
@@ 
http://blog.novoj.net Myšlenky dne otce Fura 
--



Pa Ko napsal(a):

Co presne vam na jaas vadi? Me pripadlo jako super volba, narozdil od
acegi - no flame ;-)



2007/7/9, Martin Beránek [EMAIL PROTECTED] :

 Zdravím konferenci,

 potřeboval bych doporučit něco jako security framework. Chtěl bych
 určité metody oběktů zabezpečit na uživatelské role. něco jako:

 public void someMethod() {
 Security.checkRole(admin,poweruser);
 ...
 ...
 ...
 }

 kde by Security.checkRole mohlo vyhodit nějakou SecurityException.

 koukal sem na jaas, ale tam se mi nelibi že jakmile to jednou zapnu,
 aplikuje se to všude.

 díky za návrhy

 --
 Martin Beránek






Re: jaky security framework?

2007-07-09 Tema obsahu Roman Pichlik

http://acegisecurity.org/

Martin Beránek napsal(a):

Zdravím konferenci,

potřeboval bych doporučit něco jako security framework. Chtěl bych 
určité metody oběktů zabezpečit na uživatelské role. něco jako:


public void someMethod() {
Security.checkRole(admin,poweruser);
...
...
...
}

kde by Security.checkRole mohlo vyhodit nějakou SecurityException.

koukal sem na jaas, ale tam se mi nelibi že jakmile to jednou zapnu, 
aplikuje se to všude.


díky za návrhy




--
S pozdravem Roman Dagi Pichlik

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


Re: RMI security manager, DB

2006-10-06 Tema obsahu Benda Lukas
No tak to vypada, ze tenhle problem nastava pac pouzivam Spring aten 
nejak vnitrne nepodporuje security context a remote transaction, jak 
pisi v prvnim odstavci o RMI.


Takze asi budu muset pochopit a skrotit Acegi Security. Mate nekdo s nim 
zkusenosti?


Lukas benzin Benda ([EMAIL PROTECTED];  http://benzin.bloguje.cz)
Java a Delphi programator
PHP a JavaScript skrypter
Tvurce databazovych aplikaci
A cestinarsky ignorant
Tak pri svych pokusech o rozchozeni RMI sem se dostal az do bodu, kdy 
propreneseni hlavniho objektu, potrebuji nastavit SecurityManager


Tohle mi to pise kdyz ho nemam nastaveny (na strane klienta):
 java.lang.ClassNotFoundException: cz.apnetis.jhasevid.db.DBSupport 
(no security manager: RMI class loader disabled)]


Takze jsem nastavil standardni RMISecurityManager:
System.setSecurityManager(new RMISecurityManager());

Bohuzel ted se mi nerozbehne server protoze konci s chybou:
NoClassDefFoundError: could not initialize class 
org.firebirdsql.pool.FBConnectionPoolDataSource



Cely vypis chyby je radikalne delsi, ale zbytek uz je jenom: Objekt se 
neporadilo vytvorit, protoze nebyl vytvoren objekt, ktery nebyl 
vytvoren protoze , az nakonec je vise zminena hlaska.



Pritom, kdyz security manager nastaveny neni, tak mi to tu chybu 
nehlasi (nehlasi ji to, ani kdyz je to skompilovane jako stand alone, 
verze v jednom baliku).


Nejak presne nechapu podstatu security manageru, a proc mi to nepovoli 
vytvorit connection pool.


Umite mi nekdo pomoct?

Lukas benzin Benda ([EMAIL PROTECTED];  http://benzin.bloguje.cz)
Java a Delphi programator
PHP a JavaScript skrypter
Tvurce databazovych aplikaci
A cestinarsky ignorant





RMI security manager, DB

2006-10-05 Tema obsahu Benda Lukas
Tak pri svych pokusech o rozchozeni RMI sem se dostal az do bodu, kdy 
propreneseni hlavniho objektu, potrebuji nastavit SecurityManager


Tohle mi to pise kdyz ho nemam nastaveny (na strane klienta):
 java.lang.ClassNotFoundException: cz.apnetis.jhasevid.db.DBSupport (no 
security manager: RMI class loader disabled)]


Takze jsem nastavil standardni RMISecurityManager:
System.setSecurityManager(new RMISecurityManager());

Bohuzel ted se mi nerozbehne server protoze konci s chybou:
NoClassDefFoundError: could not initialize class 
org.firebirdsql.pool.FBConnectionPoolDataSource



Cely vypis chyby je radikalne delsi, ale zbytek uz je jenom: Objekt se 
neporadilo vytvorit, protoze nebyl vytvoren objekt, ktery nebyl vytvoren 
protoze , az nakonec je vise zminena hlaska.



Pritom, kdyz security manager nastaveny neni, tak mi to tu chybu nehlasi 
(nehlasi ji to, ani kdyz je to skompilovane jako stand alone, verze v 
jednom baliku).


Nejak presne nechapu podstatu security manageru, a proc mi to nepovoli 
vytvorit connection pool.


Umite mi nekdo pomoct?

Lukas benzin Benda ([EMAIL PROTECTED];  http://benzin.bloguje.cz)
Java a Delphi programator
PHP a JavaScript skrypter
Tvurce databazovych aplikaci
A cestinarsky ignorant


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.







security reflection

2006-07-20 Tema obsahu Kamzik-II



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.

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...


security

2006-07-19 Tema obsahu Kamzik-II



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...


WS-Security : .NET server, Java client

2005-10-04 Tema obsahu Jech Tomáš
Zdravim vsechny,
resim problem volani webove sluzby implementovane v .NET z Java klienta. Server 
vyzaduje vyuziti WS-Security. Tapu v tom, jakou knihovnu pouzit pro generovani 
stubu. Posledni verze JAX-RPC a Axisu pouzivaji (alespon ja to tomu tak 
rozumim) WS-Security standardizovane loni u OASIS. Dotceny server vsak pouziva 
jakesi WSE 1.0 (Web Service Enhancment), coz je pravdepodobne predchudce 
zminovaneho standardu.

Z komunikace jsem vypozoroval rozdil v jmennem prostoru - server vyzaduje tohle 
:

wsse:Security soap:mustUnderstand=1 
xmlns:wsse=http://schemas.xmlsoap.org/ws/2002/07/secext;

a vsechno novejsi odmita. Microsoft uvadi nejaky postup na teto adrese 
http://msdn.microsoft.com/webservices/webservices/building/wse/default.aspx?pull=/library/en-us/dnwse/html/wsejavainterop.asp,
 bohuzel knihovna WSTK 3.3.2 neni uz u IBM dostupna.

Nemate nekdo k dispozici WSTK 3.3.2 ?

Pripadne, pokud se s tim uz nkdo z vas setkal, lze u novejsich toolu nastavit 
nejaky mod kompatibility ? Nebo nemate radu, jak co nejjednoduseji zprovoznit 
Java klienta proti MS sluzbe ?

Diky za pozoronost.

Tom.


Re: více než jeden security-constraint ve web -inf

2005-09-21 Tema obsahu Martin Kuba


Napsat vice security-constraint sekci jde, viz Servlet API 2.4 
specification, priklad v casti 13.5.2. na strane 153.

(Neni to na webu, musite si ono PDF stahnout a rozbalit).

Ale pokud tomu dobre rozumim, nejde mit vic nez jeden realm,
tj. jinou databazi administratoru a jinou dealeru.
Nicmene to neni nutne, staci prece jeden realm a dve role.

Takze takhle:
 security-constraint
 web-resource-collection
   web-resource-nameAdministrace/web-resource-name
   descriptionAdministrace pro web/description
   url-pattern/admin/*/url-pattern
 /web-resource-collection
 auth-constraint
   role-nameAdmin/role-name
 /auth-constraint
 /security-constraint
 security-constraint
 web-resource-collection
   web-resource-nameDealeři/web-resource-name
   descriptionDealerská sekce/description
   url-pattern/dealer/*/url-pattern
 /web-resource-collection
 auth-constraint
   role-nameDealer/role-name
 /auth-constraint
 /security-constraint
  login-config
  auth-methodBASIC/auth-method
  realm-nameWEB - admini i dealeri/realm-name
  /login-config
  security-role
  role-nameAdmin/role-name
  role-nameDealer/role-name
  /security-role

Makub

Jiri Chaloupka wrote:

Dobrý den,
řešil jste někdo jak udělat více security-constraints ve web aplikaci? 
Teoreticky by to mělo jít, ale nemohu se dobrat k funkční konfiguraci.

Něco jako:

security-constraint
web-resource-collection
  web-resource-nameAdministrace/web-resource-name
  descriptionAdministrace pro web/description
  url-pattern/admin/*/url-pattern
  http-methodGET/http-method
  http-methodPOST/http-method
/web-resource-collection
auth-constraint
  role-nameAdmin/role-name
/auth-constraint
web-resource-collection
  web-resource-nameDealeři/web-resource-name
  descriptionDealerská sekce/description
  url-pattern/dealer/*/url-pattern
  http-methodGET/http-method
  http-methodPOST/http-method
/web-resource-collection
auth-constraint
  role-nameDealer/role-name
/auth-constraint
  /security-constraint

 login-config
 auth-methodBASIC/auth-method
 realm-nameWEB - Administrace/realm-name
  /login-config
  login-config
 auth-methodBASIC/auth-method
 realm-nameWEB - Dealeři/realm-name
  /login-config

  security-role
 role-nameAdmin/role-name
  /security-role
  security-role
 role-nameDealer/role-name
  /security-role

Takto napsané je to samozřejmě hloupost, jen nevím kudy se ubírat aby to 
dalo smysl. Na googlu jsem asi zadával špatný dotaz :(
Samozřejmě jde rozdělit aplikaci do více warů, ale tomu bych se chtěl v 
danou chvíli vyhnout ...


Díky Jirka



--
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--


smime.p7s
Description: S/MIME Cryptographic Signature