当前位置: 首页 > 知识库问答 >
问题:

带有access-denied-handler标记的Spring Security错误

羊刚捷
2023-03-14

我添加了access-deniedhandler标记,以便在应用程序处理AccessDeniedException时重定向到特定页面,但出现错误:

<bean id="fsi"
    class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
    <property name="authenticationManager" ref="authenticationManager" />
    <property name="accessDecisionManager" ref="httpRequestAccessDecisionManager" />
    <property name="securityMetadataSource">
        <sec:filter-invocation-definition-source use-expressions="true">
            <sec:intercept-url pattern="/manageboxes" access="hasRole('A_READ_USER')" />
            <sec:access-denied-handler error-page="/accessDeniedPage" />
        </sec:filter-invocation-definition-source>
    </property>
</bean>

filterChainProxy的定义是:

<bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy">
    <sec:filter-chain-map request-matcher="ant">
        <sec:filter-chain pattern="/xhtml/login/invalidLogin.xhtml*" filters="none" />
        <sec:filter-chain pattern="/j_spring_security_logout"
            filters="logoutFilter,fsi" />
        <sec:filter-chain pattern="/javax.faces.resource/*"
            filters="none" />
        <sec:filter-chain pattern="/**"
            filters="casAuthenticationFilter, casValidationFilter, wrappingFilter, sif, j2eePreAuthFilter, logoutFilter, fsi" />
    </sec:filter-chain-map>
</bean>

共有1个答案

越狐若
2023-03-14

不能放在 内。您必须创建ExceptionTranslator:

<bean id="exceptionTranslator"            class="org.springframework.security.web.access.ExceptionTranslationFilter">
<property name="authenticationEntryPoint">
    <bean class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint"
            p:loginFormUrl="/login" />
</property>
<property name="accessDeniedHandler">
    <bean class="org.springframework.security.web.access.AccessDeniedHandlerImpl"
    p:errorPage="/accessDenied" />
</property>
</bean> 

并将其连接到FilterChainProxy

<bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy">
    <sec:filter-chain-map request-matcher="ant">
        <sec:filter-chain pattern="/**"
            filters="casAuthenticationFilter, casValidationFilter, wrappingFilter, sif,      j2eePreAuthFilter, logoutFilter, 
            exceptionTranslator,
            fsi" />
        </sec:filter-chain-map>
</bean>
 类似资料:
  • 问题内容: 如何在Windows中使用JDBC代码连接到基于Microsoft Access的数据库? Type-1和Type-4类型的驱动程序应编写什么语法? 对于我们使用的每种类型的驱动程序,以上语法是否有所不同?我们如何定义和识别我们使用的驱动程序类型? 如果可能,然后还为oracle指定要加载的驱动程序语法。 问题答案: 您可以通过以下方式使用JDBC-ODBC桥: 然后,您可以使用以下形

  • 我想在每个文本之后使用jsoup提取一个文本。有没有办法选择它? 示例代码如下: 当它完成时,它会创建自动id示例id=123

  • 本文向大家介绍Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’,包括了Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’的使用技巧和注意事项,需要的朋友参考一下 前言 最近在工作中遇到问题,问题如下: 这是Node在使用Sequlize连接M

  • 问题内容: 我目前正在开发一个Ionic Framework(AngularJS)项目,该项目使用地理位置和Google Maps显示用户的位置。 我正在尝试向用户显示地理位置以及该区域周围的多个标记。 我的地理位置已正常运行,但似乎无法添加多个标记。 地点 控制器 问题答案:

  • 本文向大家介绍mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database,包括了mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database的使用技巧和注意事项,需要的朋友参考一下 1. 问题描述: 在MySQL控制台