Zkousel jsem to jak pisete, dokonce jsem nasel i nejake materialy + tu knihu, co mi poslal kolega pod Vami.
Problem je, ze se mi to stale nedari, pri login() mi vyhazuje vyjimku:
2.7.2007 14:52:56 com.sun.appserv.security.AppservPasswordLoginModule login
SEVERE: SEC1105: A PasswordCredential was required but not provided.
javax.security.auth.login.LoginException: No credentials.

Zkousel jsem nastavit i PasswordCredentials:
Subject sub = new Subject();
sub.getPrivateCredentials().add(new PasswordCredential("ales", "heslo".toCharArray()));
LoginContext lc = new LoginContext("fileRealm", sub);

lc.login();
a stejne mi vyhodi chybu. Ten conf soubor nastaven mam jako:
System.setProperty("java.security.auth.login.config", "C:\\dev\\login.conf");

Tak jsem sem se dostal, ale nechapu, proc porad hlasi, ze neposkytuje PasswordCredentials :/
Zkousel jsem samozrejme i callbackhandler, ale take bez uspechu:

       public MyCallBackHand(String name, String pass) {
           this.name = name;
           this.pass = pass;
       }

public void handle(Callback[] callbacks) throws java.io.IOException, UnsupportedCallbackException {
          for(int i = 0; i < callbacks.length; i++) {
              if (callbacks[i] instanceof NameCallback) {
((NameCallback)callbacks[i]).setName(this.name); } else if(callbacks[i] instanceof PasswordCallback) { ((PasswordCallback)callbacks[i]).setPassword(this.pass.toCharArray());
              } else {
                  System.out.println(callbacks[i].getClass().getName());
} }
       }

Myslim, ze uz to bude nejakou kravinou, ale asi dost zasadni.
Zkousim se pripojit klasicky jen na fileRealm. V conf souboru mam toto:
fileRealm {
   com.sun.enterprise.security.auth.login.FileLoginModule required;
};

v java class:
Subject sub = new Subject();
sub.getPrivateCredentials().add(new PasswordCredential("ales", "heslo".toCharArray()));
LoginContext lc = new LoginContext("fileRealm", sub);

a
lc.login();

Vyhodi vyjimku:
2.7.2007 14:52:56 com.sun.appserv.security.AppservPasswordLoginModule login
SEVERE: SEC1105: A PasswordCredential was required but not provided.
javax.security.auth.login.LoginException: No credentials

Uz jsem zoufalej, asi se na JAAS vykaslu :(



________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail Servers.
http://www.eset.com

Odpovedet emailem