[Security & JAAS/JBoss] - Problem with authorization in standalone client
by zlosynus
Hi,
I am programming standalone client and I would like to use DatabaseServerLoginModule. So I added these lines to login-config.xml.
| <application-policy name = "Konfigurator">
| <authentication>
| <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule"
| flag = "required">
| <module-option name = "unauthenticatedIdentity">guest</module-option>
| <module-option name = "dsJndiName">java:/MySQLDS</module-option>
| <module-option name = "principalsQuery">SELECT password FROM Users WHERE login=?</module-option>
| <module-option name = "rolesQuery">SELECT roles, 'Roles' FROM UserRoles WHERE login=?</module-option>
| </login-module>
| </authentication>
| </application-policy>
|
At my client I am using following code to login:
| System.setProperty("java.security.auth.login.config", "auth.conf");
| Konektor.KonektorHandler handler = new Konektor.KonektorHandler(userName, password);
| try
| {
| LoginContext lc = new LoginContext("Konfigurator", handler);
| lc.login();
| }
| catch (Exception e)
| {
| System.out.println( "Login Exception: " + e.getMessage() );
| }
|
|
Here is code of auth.conf:
| Konfigurator {
| org.jboss.security.auth.spi.DatabaseServerLoginModule required;
| };
|
And here is definition of KonektorHandler:
| class KonektorHandler implements CallbackHandler
| {
| private String login;
| private String password;
|
| public KonektorHandler(String login, String password)
| {
| this.login = login;
| this.password = password;
| }
|
| public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException
| {
| for (int i = 0; i < callbacks.length; i++)
| {
| if (callbacks instanceof NameCallback)
| {
| NameCallback nc = (NameCallback)callbacks;
| nc.setName(login);
| }
| else if (callbacks instanceof PasswordCallback)
| {
| PasswordCallback pc = (PasswordCallback)callbacks;
| pc.setPassword(password.toCharArray());
| }
| else
| {
| throw new UnsupportedCallbackException(callbacks, "Unrecognized Callback");
| }
| }
| }
| }
|
But when I am running client, I receave following exception at function LoginContext.login() and I don't understand it at all.
| [java] Login Exception: java.lang.NoClassDefFoundError: org/jboss/system/ServiceMBeanSupport
| [java] at java.lang.ClassLoader.defineClass1(Native Method)
| [java] at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
| [java] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
| [java] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
| [java] at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
| [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
| [java] at java.security.AccessController.doPrivileged(Native Method)
| [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
| [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
| [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| [java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| [java] at org.jboss.tm.TransactionManagerLocator.tryJNDI(TransactionManagerLocator.java:96)
| [java] at org.jboss.tm.TransactionManagerLocator.locate(TransactionManagerLocator.java:77)
| [java] at org.jboss.tm.TransactionDemarcationSupport.suspendAnyTransaction(TransactionDemarcationSupport.java:48)
| [java] at org.jboss.security.auth.spi.DatabaseServerLoginModule.getUsersPassword(DatabaseServerLoginModule.java:132)
| [java] at org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:206)
| [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| [java] at java.lang.reflect.Method.invoke(Method.java:597)
| [java] at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
| [java] at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
| [java] at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
| [java] at java.security.AccessController.doPrivileged(Native Method)
| [java] at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
| [java] at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
| [java] at Konektor.loginToSystem(Unknown Source)
| [java] at MainWindow.tryLogin(Unknown Source)
| [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
|
Is there something that I am missing?? Whats wrong?!
Thanks.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170778#4170778
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170778
17 years, 11 months
[Installation, Configuration & DEPLOYMENT] - jboss && log4j
by Darkshine
I'm using jboss with log4j. I have remote application jmslistener, which uses jboss over network. When I try to start jmslistener, I get the following errors:
log4j:ERROR Error while activating options for appender named [DefaultAppender].
java.lang.NullPointerException
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1392)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:596)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:589)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at org.apache.log4j.net.JMSAppender.lookup(Unknown Source)
at org.apache.log4j.net.JMSAppender.activateOptions(Unknown Source)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:509)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:415)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:468)
at org.apache.log4j.LogManager.(LogManager.java:122)
at org.jboss.logging.Log4jLoggerPlugin.init(Log4jLoggerPlugin.java:63)
at org.jboss.logging.Logger.getDelegatePlugin(Logger.java:338)
at org.jboss.logging.Logger.(Logger.java:96)
at org.jboss.logging.Logger.getLogger(Logger.java:309)
at org.jnp.interfaces.NamingContext.(NamingContext.java:158)
at org.jnp.interfaces.NamingContextFactory.getInitialContext(NamingContextFactory.java:56)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.(InitialContext.java:175)
at com.telcordia.xsm.jmslistener.SynchronousServer.createTopicSubscriber(SynchronousServer.java:70)
at com.telcordia.xsm.jmslistener.SynchronousServer.receiveMessages(SynchronousServer.java:45)
at com.telcordia.xsm.jmslistener.SynchronousServer.run(SynchronousServer.java:40)
at java.lang.Thread.run(Thread.java:595)
It looks like I missed some jar-files in CLASSPATH. Is this true?
My CLASSPATH contains the following jars:
jta20.jar
log4j-1.2.13.jar
oalnf.jar
jbossall-client.jar
jboss-j2ee.jar
My jboss is:
jboss-eap-4.3
Thanks
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4170772#4170772
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4170772
17 years, 11 months