To add if you see the spring security application config, I have the following set:
<security:http> <security:intercept-url pattern="/**/secure/**" access="ROLE_USER" /> <security:intercept-url pattern="/**/operations/**" access="ROLE_OPERATIONS"/> </security:http> The URL for the outcome to be forwarded to matches the second interceptor pattern which is "/jsp/operations/user/operationsLanding.iface" However what the filter receives is "/jsp/secure/hprelanding.jspx" which is the old URL from where the control is being forwarded. This is not how it happens when using jsp:forward. Regards, Madhav -----Original Message----- >From: Madhav Bhargava > >Hi Michael, > >Following are the servlet mappings: > ><servlet-mapping> > <servlet-name>Faces Servlet</servlet-name> > <url-pattern>*.faces</url-pattern> > </servlet-mapping> > > <servlet-mapping> > <servlet-name>Faces Servlet</servlet-name> > <url-pattern>*.jspx</url-pattern> > </servlet-mapping> > > <!-- Persistent Faces Servlet Mapping --> > <servlet-mapping> > <servlet-name>Persistent Faces Servlet</servlet-name> > <url-pattern>*.iface</url-pattern> > </servlet-mapping> > >The navigation case in faces-config.xml is: > ><navigation-rule> > <navigation-case> > <from-outcome>OPERATION_LANDING</from-outcome> > > <to-view-id>/jsp/operations/user/operationsLanding.iface</to-view-id> > </navigation-case> ></navigation-rule> > >This has been configured as per the icefaces documentation. If we disregard >spring security filter issue the >forward happens properly. Spring security >filter gets invoked once after the return "OPERATION_LANDING" from >within the >action method has been executed. The strange part is that the URL is still the >previous one. > >It is strange because when using jsp:forward from index.jsp to login.jsp >spring security filter gets both the >URL's. > >What could be the issue? > >Regards, >Madhav > > >From: Michael Kurz [mailto:michi.k...@gmx.at] >Hi, > >which mapping do you use for your faces servlet: postfix (like *.jsf) or >prefix (like /faces/*)? Maybe the "real" JSF urls are not listed in your >intercepter config. > >regards >Michael > >Madhav Bhargava schrieb: > 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 >