Ho una piccola applicazione, che proviene dal tutorial sull'autenticazione della SUN, che effettua l'autenticazione di un utente. L'applicazione è costituita da tre sorgenti e quattro file .class (perché una classe è innestata):
SampleAcn.java
SampleLoginModule.java
SamplePrincipal.java
Dal primo file si ottengono i file .class sample.SampleAcn.class e sample.MyCallbackHandler.class,
dal secondo sample.module.SampleLoginModule.class e dal terzo sample.principal.SamlePrincipal.class.
Successivamente iil tutorial inserisce in un jar i file sample.SampleAcn.class e sample.MyCallbackHandler.class (SampleAcn.jar) e in un altro package i file sample/module/SampleLoginModule.class e sample/principal/SamplePrincipal.class (SampleLM.jar)e costruisce il file di policy così:
In questo modo tutto funziona.Codice PHP:/** Java 2 Access Control Policy for the JAAS Sample Application **/
/* grant the sample LoginModule permissions */
grant codebase "file:./SampleLM.jar" {
permission javax.security.auth.AuthPermission "modifyPrincipals";
};
grant codebase "file:./SampleAcn.jar" {
permission javax.security.auth.AuthPermission "createLoginContext.Sample";
};
Io volevo utilizzare la stessa applicazione senza creare i file jar: ho costruito due file di policy, il primo più permissivo (e l'applicazione funziona) e il secondo meno permissivo. E' proprio quest'ultimo che non funziona (mi ritorna l'errore [ access denied (javax.security.auth.AuthPermission createLoginContext.Sample)]). Di seguito i due file di policy:
Questo funziona:
Questo non funziona:Codice PHP:/** Java 2 Access Control Policy for the JAAS Sample Application **/
grant codebase "file:./build/classes/-" {
permission javax.security.auth.AuthPermission "createLoginContext.Sample";
};
grant codebase "file:./build/classes/-" {
permission javax.security.auth.AuthPermission "modifyPrincipals";
};
Vorrei sapere come si deve correggere quest'ultimo per impostare i permessi a livello di file.Codice PHP:/** Java 2 Access Control Policy for the JAAS Sample Application **/
grant codebase "file:./build/classes/sample/SampleAcn.class" {
permission javax.security.auth.AuthPermission "createLoginContext.Sample";
};
grant codebase "file:./build/classes/sample/MyCallbackHandler.class" {
permission javax.security.auth.AuthPermission "createLoginContext.Sample";
};
grant codebase "file:./build/classes/sample/module/SampleLoginModule.class" {
permission javax.security.auth.AuthPermission "modifyPrincipals";
};
grant codebase "file:./build/classes/sample/principal/SamplePrincipal.class" {
permission javax.security.auth.AuthPermission "modifyPrincipals";
};
Grazie.

Rispondi quotando