Hi Tomasz, That's all correct! However, I don't think he is using Facelets, because he mentioned JSP-pages...
Regards, Jakob 2010/1/12 Tomasz Pasierb <[email protected]> > Hi, > > as I understand you use a commandButton and as a result a different page (a > secured one) is rendered but spring security does not seem to intercept the > url, is that right? > > If so and if the solution used by you uses Facelets then this may be the > problem. > When using Facelets as opposed to "pure" (older) jsf+jsp approach there is > no forward when a new view is rendered that is a result of a navigation case > forward. I've been investigating this recently. When JSP view handler is > used it checks which view should be rendered next and does a forward to this > new view which spring security can intercept. The Facelet view handler > however seems to load the view (xhtml) and render it without making the > actual forward. As a result no interception can happen and usually it is > triggered with the next request. > You need to either use redirects or make GET requests to logically separate > views - I know this is not natural with jsf versions prior to 2.0, but this > new spec seems to change everything :-) - use can easily generate GET > requests with the new version. > > Hope this helps ;) > > Regards, > Tom Pasierb > > Madhav Bhargava pisze: > > Hi All, >> >> I am using myfaces 1.1, icefaces 1.8.1, spring 2.5.6, spring security >> -2.0.5, WAS 6.0 (app server) >> >> I have configured spring security for my JSF application along with >> SiteMinder as an external authentication mechanism. It works fine till a >> forward happens from within myfaces. >> >> Here is my spring servlet filter chain declaration: >> <filter> >> <description> >> Spring delegating filter which will >> initiate the spring >> security filter chain >> </description> >> <display-name>springSecurityFilterChain</display-name> >> <filter-name>springSecurityFilterChain</filter-name> >> <filter-class> >> >> org.springframework.web.filter.DelegatingFilterProxy >> </filter-class> >> </filter> >> >> <filter-mapping> >> <filter-name>springSecurityFilterChain</filter-name> >> <url-pattern>/*</url-pattern> >> <dispatcher>FORWARD</dispatcher> >> <dispatcher>REQUEST</dispatcher> >> </filter-mapping> >> >> And in my spring application context I have followed the advice from >> spring forums and done necessary settings: >> Excerpt is: >> >> <security:http >> >> entry-point-ref="preAuthenticatedProcessingFilterEntryPoint" >> once-per-request="false"> >> <security:intercept-url pattern="/index.jsp" filters="none" >> /> >> <security:intercept-url pattern="/login.jsp" filters="none" >> /> >> <security:intercept-url pattern="/authenticationservlet" >> filters="none"/> >> <security:intercept-url pattern="**/jsp/common/**" >> filters="none"/> >> <security:intercept-url pattern="/**/css/**" >> filters="none"/> >> <security:intercept-url pattern="/**/*.js" filters="none"/> >> <security:intercept-url pattern="/images/**" >> filters="none"/> >> <security:intercept-url pattern="/**/secure/**" >> access="ROLE_USER" /> >> <security:intercept-url pattern="/**/operations/**" >> access="ROLE_OPERATIONS"/> >> <security:intercept-url pattern="/**" >> access="IS_AUTHENTICATED_ANONYMOUSLY" /> >> </security:http> >> >> Now when I forward a request from index.jsp to login.jsp then the spring >> filters are called with the login.jsp URL even though the browser shows the >> old URL. >> >> However when from within an action method a navigation case is handled >> then it is not intercepted by the spring filters at all. However if I give a >> <redirect/> then it is properly intercepted with the correct URL as >> expected. >> >> What can be the reason? >> >> Regards, >> Madhav >> >> >> >

