JAAS (java authentification et autorisation service)
bonjour
est ce que pour utiliser JAAS sur netbeans j'ai besoin d'instaler un plugin ou un module parce que j'ai écrit un petit pregramme de test et sa fonction pas
il m'affiche une exception :
Exception in thread "main" javax.security.auth.login.LoginException: Aucun LoginModule configuré pour jaass
at javax.security.auth.login.LoginContext.init(LoginContext.java:273)
et Merci d'avance.
Voila un aperçût sur le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class Jaastest {
public Jaastest() throws LoginException{
LoginContext jaasContext = new LoginContext("jaass", new Kalback());
jaasContext.login();
Subject.doAsPrivileged(jaasContext.getSubject(), new doAction(),null);
jaasContext.logout();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws LoginException {
// TODO code application logic here
Jaastest jt = new Jaastest();
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| public class ModuleConnexion implements LoginModule{
private Subject subject;
private CallbackHandler callbackHandler;
private NamePrincipal namePrincipal;
private boolean debug ;
private String userName ;
private boolean succeeded = false ;
private boolean commitSucceeded = false;
private Map sharedState;
@Override
public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState, Map<String, ?> options) {
this.subject = subject;
this.callbackHandler= callbackHandler;
debug ="true". equalsIgnoreCase((String) options.get("debug"));
}
@Override
public boolean login() throws LoginException {
if ( debug ) {
System.err.println("ModuleConnexion : login");
}
NameCallback nameCallback = new NameCallback ("user :");
PasswordCallback passwordCallback =new PasswordCallback("password : ", false);
Callback[] callbacks = new Callback[]{nameCallback ,passwordCallback} ;
try {
callbackHandler.handle(callbacks);
} catch ( Exception ex ) {
ex.printStackTrace();
throw new LoginException ("Error while getting user input !") ;
}
userName = nameCallback.getName();
succeeded = validateUser( userName , passwordCallback.getPassword ( ) ) ;
passwordCallback.clearPassword();
return succeeded ;
}
@Override
public boolean commit() throws LoginException {
if(debug){
System.err.println("GUILoginModule : commit");
}
if(!succeeded){
userName = null;
return false;
}
namePrincipal = new NamePrincipal ( userName ) ;
if( !subject.getPrincipals().contains(namePrincipal)){
subject.getPrincipals().add(namePrincipal);
}
userName = null;
commitSucceeded = true ;
return true ;
}
@Override
public boolean abort() throws LoginException {
if(debug){
System.err.println("GUILoginModule : abort");
}
if(!succeeded){
return false;
}else if ( succeeded && commitSucceeded ) {
logout();
} else {
succeeded = false;
}
return true ;
}
@Override
public boolean logout() throws LoginException {
if( debug ) {
System.err.println("GUILoginModule : logout") ;
}
subject.getPrincipals().remove(namePrincipal ) ;
namePrincipal = null ;
userName = null ;
succeeded = commitSucceeded = false ;
return true ;
}
private boolean validateUser ( String userName , char [ ] password ) {
return "jaas".equals( userName ) && "java".equals (new String ( password ) ) ;
}
} |
Code:
1 2 3
| jaass {
jaastest.ModuleConnexion required debug=true;
}; |