0

我必须检查用户是否有切换用户的权限,基于他的userId. 在我的安全 xml 中,在<http>元素内部,我指定了一个自定义过滤器:

<custom-filter after="FILTER_SECURITY_INTERCEPTOR" ref="switchUserProcessingFilter"/>

<beans:bean id="switchUserProcessingFilter" class="com.something.MySwitchUserFilter">
        <beans:property name="userDetailsService" ref="userServices" />
        <beans:property name="switchUserUrl" value="/admin/switchUser" />
        <beans:property name="exitUserUrl" value="/exitUser" />
        <beans:property name="successHandler" ref="userSwitchSuccessHandler"></beans:property>
    </beans:bean>

MySwitchUserFilter中,我只覆盖了一个方法:

    @Override
    @PreAuthorize("canISwitchToThisUser(#{request.getAttribute('userId')}")
    protected Authentication attemptSwitchUser(HttpServletRequest request) throws AuthenticationException {
        return super.attemptSwitchUser(request);

    }

@PreAuthorize在其他地方工作,但我想知道为什么它不在这里工作。请注意,我还传递了一个请求参数“ userId”以及惯用的“ j_username”。请注意,我可以切换用户,只是注释没有被处理。

4

0 回答 0