[jboss-user] [JBoss Seam] - Seam 1.3 Alpha and Basic Authentication

aidan_b5 do-not-reply at jboss.com
Wed Jun 20 07:21:20 EDT 2007


Hello,

I'm relatively new to Seam and am trying to want to integrate an application using seam into an existing ear. The other apps in the ear use basic authentication therefore I have been trying to use the AuthenticationFilter in Seam 1.3 Alpha.

My components.xml:

<components xmlns="http://jboss.com/products/seam/components"
  |             xmlns:core="http://jboss.com/products/seam/core"
  | 			xmlns:web="http://jboss.com/products/seam/web"
  |             xmlns:security="http://jboss.com/products/seam/security"
  |             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |             xsi:schemaLocation=
  |                 "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-1.3.xsd
  |                  http://jboss.com/products/seam/components http://jboss.com/products/seam/components-1.3.xsd
  |                  http://jboss.com/products/seam/web http://jboss.com/products/seam/web-1.3.xsd
  |                  http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-1.3.xsd
  |                  http://jboss.com/products/seam/security http://jboss.com/products/seam/security-1.3.xsd">
  | 
  |     <core:init jndi-pattern="SMSPortal/#{ejbName}/local"  debug="true"/>
  | 
  | 	<!--<core:jbpm>
  | 		<core:process-definitions>
  | 			<value>business-process.jpdl.xml</value>
  | 		</core:process-definitions>
  | 	</core:jbpm>-->
  | 
  |     <core:manager conversation-timeout="120000" />
  | 
  | 	<core:managed-persistence-context name="entityManager" 
  |                              auto-create="true"
  |               persistence-unit-jndi-name="java:/crsEntityManagerFactory"/>
  | 
  |     <core:ejb installed="false"/>
  | 
  | 	<web:authentication-filter url-pattern="*.seam" auth-type="basic" realm="SMSLDAP"/>-->
  | 
  | 
  |     <security:identity authenticate-method="#{login:login}" jaas-config-name="SMSLDAP"/>
  | 
  | 
  | </components>

And the exceptions I'm getting:

11:10:24,088 INFO  [Initialization] done initializing Seam
  | 11:10:24,088 INFO  [SeamFilter] Initializing filter: org.jboss.seam.web.redirectFilter
  | 11:10:24,088 INFO  [SeamFilter] Initializing filter: org.jboss.seam.web.multipartFilter
  | 11:10:24,088 INFO  [SeamFilter] Initializing filter: org.jboss.seam.web.exceptionFilter
  | 11:10:24,088 INFO  [SeamFilter] Initializing filter: org.jboss.seam.web.authenticationFilter
  | 11:10:24,182 INFO  [EARDeployer] Started J2EE application: file:/C:/Software/jboss-4.2.0.GA/server/default/deploy/SMSPortal.ear/
  | 11:10:24,681 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
  | 11:10:24,728 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
  | 11:10:25,009 INFO  [Server] JBoss (MX MicroKernel) [4.2.0.GA (build: SVNTag=JBoss_4_2_0_GA date=200705111440)] Started in 1m:570ms
  | 11:10:41,973 ERROR [ExceptionFilter] uncaught exception
  | java.lang.NullPointerException
  |         at org.jboss.seam.web.AuthenticationFilter.processBasicAuth(AuthenticationFilter.java:154)
  |         at org.jboss.seam.web.AuthenticationFilter.doFilter(AuthenticationFilter.java:121)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:60)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:81)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:47)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:127)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
  |         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |         at java.lang.Thread.run(Thread.java:595)
  | 11:10:42,114 ERROR [ExceptionFilter] exception root cause
  | 11:10:42,160 INFO  [Lifecycle] starting up: org.jboss.seam.core.servletSession
  | 11:10:42,176 INFO  [Lifecycle] starting up: org.jboss.seam.security.identity
  | 11:10:43,159 ERROR [DebugPageHandler] redirecting to debug page
  | java.lang.NullPointerException
  |         at org.jboss.seam.web.AuthenticationFilter.processBasicAuth(AuthenticationFilter.java:154)
  |         at org.jboss.seam.web.AuthenticationFilter.doFilter(AuthenticationFilter.java:121)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:60)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:81)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:47)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:127)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
  |         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |         at java.lang.Thread.run(Thread.java:595)
  | 11:10:43,284 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
  | java.lang.IllegalArgumentException: Stack must not be null
  |         at org.jboss.seam.core.ConversationEntry.<init>(ConversationEntry.java:40)
  |         at org.jboss.seam.core.ConversationEntries.createConversationEntry(ConversationEntries.java:52)
  |         at org.jboss.seam.core.Manager.createConversationEntry(Manager.java:685)
  |         at org.jboss.seam.core.Manager.beforeRedirect(Manager.java:834)
  |         at org.jboss.seam.core.Manager.beforeRedirect(Manager.java:852)
  |         at org.jboss.seam.exceptions.DebugPageHandler.handle(DebugPageHandler.java:24)
  |         at org.jboss.seam.core.Exceptions.handle(Exceptions.java:78)
  |         at org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:85)
  |         at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:66)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:81)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:47)
  |         at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
  |         at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:127)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
  |         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
  |         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  |         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
  |         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  |         at java.lang.Thread.run(Thread.java:595)

>From my rudimentary knowledge of Seam, it looks like the NullPointer is caused by the Authentication filter being hit before the Identity object has been initialised and added to the application context.

I really need to solve this problem, I have tried writing my own filter but have the same problem, how do I get the identity component to be initialised before my filter or the AuthenticationFilter?

Thanks.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4055975#4055975

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4055975



More information about the jboss-user mailing list