JSF和Spring安全集成

时间:2013-01-10 20:00:08

标签: spring jsf spring-mvc spring-security

  

可能重复:
  Spring Security Authentication is not working as expected in my configuration

我尝试整合JSF和Spring安全性我花了差不多一天但没有结果

使用JSF,Spring MVC和Primfaces开发了一个应用程序。我几乎完成了我的要求,最后我计划整合弹簧安全但我不能和我在网上做足够的搜索。我觉得它可能是相关框架中的错误。

如果有人遇到同样的问题,请发布解决方案。我在这里发布我的方法

第1步: 创建了Login.jsp(具有自定义登录页面) 第2步: 在我的web.xml中添加了以下代码

<filter>
    <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>

第3步:

创建了Springsecurity.xml

<sec:global-method-security
    secured-annotations="enabled" />
<sec:http auto-config="true" use-expressions="true"
    once-per-request="false">
    <sec:intercept-url pattern="pages/secured/**"
        access="ROLE_USER" />
    <sec:form-login login-page="/login.jsp"
        default-target-url="/pages/secured/products.xhtml"
        authentication-failure-url="/login.html?login_error=1" />
    <sec:logout logout-url="/logout" logout-success-url="/login.jsp" />
</sec:http>

<sec:authentication-manager alias="authenticationManager">
    <sec:authentication-provider>
        <sec:user-service>
            <sec:user name="vijay" authorities="ROLE_USER" password="vijay"/>
        </sec:user-service>
    </sec:authentication-provider>
</sec:authentication-manager>

执行应用程序并将login.jsp作为第一页,因为我在web.xml中定义。在登录身份验证时,它转发到Products.xhtml,但我甚至可以访问其余的页面,这些页面都在安全文件夹下,没有登录。

请建议更好的方法或其他替代方案。

1 个答案:

答案 0 :(得分:0)

您的访问属性是否已尝试过。你的第一个斜线在模式中丢失了。

<sec:intercept-url pattern="/pages/secured/**"
    access="hasRole('ROLE_USER')" />