Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ApplicationServer Authentication

1 view
Skip to first unread message

Sven Kiesewetter

unread,
Feb 19, 2004, 8:29:02 AM2/19/04
to
Hi,

ich hab ein kleines Problem mit der Authentifizierung auf einem
JBoss+Tomcat. Das Einloggen über ein Formular klappt erstmal, jedenfalls
wird die geschützte WebResource angegeigt.
Navigiert man dann weiter, kracht es beim Aufruf einer EJB-Methode:

14:08:45,364 DEBUG [EditUserAction] BEGIN load
14:08:45,374 DEBUG [EditUserAction] got uuid=2
14:08:45,384 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@d507d3
14:08:45,384 ERROR [SecurityInterceptor] Insufficient method
permissions, principal=null, method=create, interface=HOME,
requiredRoles=[CustomerAdmin, Internal, Customer, Admin], principalRoles=[]
14:08:45,394 ERROR [LogInterceptor] EJBException, causedBy:
java.lang.SecurityException: Insufficient method permissions,
principal=null, method=create, interface=HOME,
requiredRoles=[CustomerAdmin, Internal, Customer, Admin], principalRoles=[]
at
org.jboss.ejb.plugins.SecurityInterceptor.checkSecurityAssociation(SecurityInterceptor.ja
va:229)
at
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:81)
at
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:120)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderIntercep
tor.java:93)
at
org.jboss.ejb.StatelessSessionContainer.internalInvokeHome(StatelessSessionContainer.java
:319)

Es geht dabei anscheinend um die CreateMethode meines UserManagers, auf
die CustomerAdmin, Internal, Customer, Admin zugreifen dürfen.
Nun frage ich mich allerdings, wieso principal=null ist, wo ich mich
doch vorher mit Login+Passwort erfolgreich angemeldet habe.
In der login-config.xml steht folgendes:
<application-policy name = "CustomerSiteRealm">
<authentication>
<login-module
code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag =
"required">
<module-option
name="password-stacking">useFirstPass</module-option>
<module-option
name="unauthenticatedIdentity">Guest</module-option>
<module-option
name="dsJndiName">java:/CustomerSite</module-option>
<module-option name="principalsQuery">select password from
user_ where loginname=?</module-option>
<module-option name="rolesQuery">select 'Customer','Roles'
from user_ where loginname=?</module-option><!-- jeder ist erstmal
Customer -->
<module-option name="hashAlogorithm">SHA</module-option>
<module-option name="hashEncoding">base64</module-option>
</login-module>
</authentication>
</application-policy>

Sven

Sven Kiesewetter

unread,
Feb 19, 2004, 8:41:40 AM2/19/04
to
noch was:
für die Seite, die direkt nach dem Login angezeigt wird, wird auch der
UserManager (ist ein SessionBean) benutzt und damit auch dessen
Create-Methode.


14:27:26,206 TRACE [DatabaseServerLoginModule] initialize
14:27:26,206 TRACE [DatabaseServerLoginModule] Saw
unauthenticatedIdentity=Guest
14:27:26,206 TRACE [DatabaseServerLoginModule]
DatabaseServerLoginModule, dsJndiName=java:/CustomerSite
14:27:26,206 TRACE [DatabaseServerLoginModule] principalsQuery=select

password from user_ where loginname=?

14:27:26,206 TRACE [DatabaseServerLoginModule] rolesQuery=select

'Customer','Roles' from user_ where loginname=?

14:27:26,206 TRACE [DatabaseServerLoginModule] login
14:27:26,246 TRACE [DatabaseServerLoginModule] User 'maikb'
authenticated, loginOk=true
14:27:26,246 TRACE [DatabaseServerLoginModule] commit, loginOk=true
14:27:26,256 TRACE [CustomerSiteRealm] updateCache, subject=Betreff:
Principal: maikb
Principal: Roles(members:Customer)

14:27:26,276 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@1a33662
14:27:26,286 DEBUG [RequestUtils] Get module name for path /UserList_view.do
14:27:26,286 DEBUG [RequestUtils] Module name found: default
14:27:26,286 DEBUG [RequestProcessor] Processing a 'GET' for path
'/UserList_view'
14:27:26,286 DEBUG [RequestProcessor] Creating new Action instance
14:27:26,296 DEBUG [UserListAction] BEGIN execute
14:27:26,296 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@1a33662
14:27:26,306 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@1a33662
14:27:26,386 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@1a33662
14:27:26,396 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@1a33662
14:27:26,436 TRACE [CustomerSiteRealm] validateCache,
info=org.jboss.security.plugins.JaasSecurityManager$DomainInfo@1a33662
14:27:26,556 DEBUG [UserManagerBean] listUsers():[{uuid=2
loginname=maikb password=maikb firstname=Maik lastname=Brettschneider
email=ma...@mokkafish.com street=strasse zipcode=plz city=jena phone=
mobile= active=false}]
14:27:26,566 DEBUG [UserListAction] forwarding to
/share/customersite/user/userList.jsp
14:27:26,566 DEBUG [UserListAction] END execute

Sven

Sven Kiesewetter

unread,
Feb 19, 2004, 9:33:35 AM2/19/04
to
Sven Kiesewetter wrote:

Manchmal reicht ein Denkanstoss um das Problem dann doch noch selbst zu
lösen. Allerdings hatte ich auch eine Info zu wenig gepostet ..
Der Fehler lag darin, dass ich die 2. Seite in der web.xml schlichtweg
nicht mit im den security-constraint angegeben hatte, was dazu führte,
dass dem JaasSecurityManager Daten fehlten. Allerdings hätte ich
erwartet, dass als Role dann Guest angenommen wird.

Sven

0 new messages