2012-06-14 2 views
1

В настоящее время мы переносим приложение Java EE из JBoss 6 в JBoss 7.1.1. Приложение не имеет веб-интерфейса, а только удаленного клиента на базе Eclipse RCP. Для аутентификации клиентов удаленный клиент использует «javax.security.auth.login.LoginContext» для предоставления необходимых учетных данных. Сервер использует «DatabaseServerLoginModule» для аутентификации всего доступа к домену безопасности приложений.Использование JBoss 7 DatabaseServerLoginModule с удаленным клиентом

Для порта, приложения для JBoss 7.1.1 Я сделал следующее:

Я настроил безопасности-домен в "автономном-full.xml":

<security-domain name="myDomain" cache-type="default"> 
    <authentication> 
    <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"> 
     <module-option name="dsJndiName" value="jdbc/myDS"/> 
     <module-option name="principalsQuery" value="select u.password from users u left join authorizables a on u.id=a.id where a.name=?"/> 
     <module-option name="rolesQuery" value="SELECT 'user', 'Roles' FROM authorizables WHERE name=?"/> 
    </login-module> 
    </authentication> 
</security-domain> 

Следующая Я настроил безопасность-область:

<security-realm name="MyAppRealm"> 
    <authentication> 
    <jaas name="myDomain"/> 
    </authentication> 
</security-realm> 

И последнее, я связал разъем удаленного взаимодействия с моей пользовательской областью

<connector name="remoting-connector" socket-binding="remoting" security realm="MyAppRealm"/> 

Теперь при попытке получить доступ к серверу следующее исключение брошено:

ERROR connection:99 - JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed 

javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed] 
at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36) 
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121) 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
at javax.naming.InitialContext.init(InitialContext.java:223) 
at javax.naming.InitialContext.<init>(InitialContext.java:197) 
at my.SampleClient.login(SampleClient.java:110) 
... 26 more 
Caused by: java.lang.RuntimeException: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed 
at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:87) 
at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56) 
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166) 
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139) 
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104) 
... 31 more 
Caused by: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed 
at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:365) 
at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:214) 
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72) 
at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:189) 
at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:103) 
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72) 
at org.xnio.nio.NioHandle.run(NioHandle.java:90) 
at org.xnio.nio.WorkerThread.run(WorkerThread.java:184) 
at ...asynchronous invocation...(Unknown Source) 
at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:270) 
at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:251) 
at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:349) 
at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:333) 
at org.jboss.naming.remote.client.EndpointCache$EndpointWrapper.connect(EndpointCache.java:105) 
at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:55) 
... 34 more 

Кто-нибудь идея, что я сделал неправильно. Может кто-нибудь дать мне подсказку о том, как настроить этот сценарий. Я искал в документации JBoss, но не нашел решения для этой проблемы.

+0

У меня такая же проблема ... вам удалось решить вашу проблему? – Sergiu

ответ

-1

Часть:

<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">

это неправильно. Не используйте полностью имя класса «org.jboss.security.auth.spi.DatabaseServerLoginModule» и да «База данных», в соответствии с ссылкой https://docs.jboss.org/author/display/AS71/Security+subsystem+configuration, где существует таблица с этим «кодом», связанная с «полным именем квалифицированного класса».

Смежные вопросы