Jsf 密码编码器不工作的SwitchUserFilter

Jsf 密码编码器不工作的SwitchUserFilter,jsf,spring-security,Jsf,Spring Security,我在AuthenticationManager中引用了一个和CustomDetailService。在所有其他安全过滤器(并发、customLogoutFilter等)和之后,我在spring security中添加了以下bean: //奥米特。。。 这是我的facelets页面: <h:form> <h:inputText id="j_username" value="" styleClass="textInput" size="50"/>

我在AuthenticationManager中引用了一个
和CustomDetailService。在所有其他安全过滤器(并发、customLogoutFilter等)和
之后,我在spring security中添加了以下bean:


//奥米特。。。
这是我的facelets页面:

<h:form>
    <h:inputText id="j_username" value="" styleClass="textInput" size="50"/>    
    <p>Click <h:commandLink value="here" action="/j_spring_security_switch_user"/> to switch to 
        user </p>
</h:form>

单击以切换到
使用者

日志中的错误:

org.springframework.security.web.access.intercept.FilterSecurityInterceptor -RunAsManager未更改身份验证对象


我能解决这个问题。问题在于,当我将jsf操作绑定到“/j_spring_security_switch_user”时,我的jsf页面没有将j_username发送到SwitchUserFilter。但是,通过控制器绑定的passthrough可以工作

我在这里写下了我的经历:


调试日志对如何处理请求有何说明?您应该能够看到它通过了哪些过滤器,特别是是否调用了
SwitchUserFilter
SwitchUserFilter
未激发。如果未调用筛选器,则该筛选器不在筛选器链中。我也看不到你的注销过滤器。请发布您的配置。抱歉延迟;我用完整的spring安全配置更新了描述。这是一个四年前在2.5中编写的prod应用程序,后来迁移到spring security 3.0.2。您还没有描述出现了什么问题,也没有给出任何相关的日志输出。“RunAsManager未更改身份验证对象”不是一个错误,只是一条调试消息(众多消息之一)。您还应该使用最新版本的3.0.x。如果您仍在使用3.0.2,则您的应用程序可能会受到已发布漏洞的影响。
<h:form>
    <h:inputText id="j_username" value="" styleClass="textInput" size="50"/>    
    <p>Click <h:commandLink value="here" action="/j_spring_security_switch_user"/> to switch to 
        user </p>
</h:form>