相关疑难解决方法(0)

Spring Security自定义过滤器(更改密码)

我正在使用Spring Security保护对网站的HTTP请求.主要用途是保护页面,以便在尝试访问这些页面时将用户重定向到登录页面.

但是,我还有一个要求.在我的模型中,我可以将用户的密码标记为临时密码,这样当他们成功登录时,应该自动强制他们更改密码.更改密码后,应将其转发到最初尝试访问的页面.

有没有人为此目的使用Spring Security?我是否需要创建自己的自定义过滤器?

谢谢,

安德鲁

spring spring-security

15
推荐指数
3
解决办法
2万
查看次数

Spring Security 3.0:如何指定自定义过滤器适用的URL?

我正在使用带有JSP的Spring Security 3.0.我创建了一个RequireVerificationFilter,可以将未经验证的用户重定向到"验证您的电子邮件"页面.

我在最后一个地方将过滤器添加到spring安全过滤器堆栈中,如下所示:

我的app-config.xml中的Bean定义:

<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Run Code Online (Sandbox Code Playgroud)

过滤器添加到我的security-config.xml中的spring安全过滤器列表中:

<custom-filter ref="requireVerificationFilter" after="LAST" />
Run Code Online (Sandbox Code Playgroud)

过滤器有效,但它会过滤自己的重定向网址.也就是说,过滤器会将未经验证的用户重定向到/ access/verify,但过滤器也会捕获该URL,过滤器会无限制地尝试重定向.

我尝试使用<filter-mapping>标记来限制这个新过滤器适用的URL,但这似乎不像我想象的那样工作.这是我添加的web.xml条目:

    <filter>
        <filter-name>requireVerificationFilter</filter-name>
        <filter-class>com.ebisent.web.RequireVerificationFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>requireVerificationFilter</filter-name>
        <url-pattern>/account/*</url-pattern>
    </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

我在春季安全文档中阅读了"添加自己的过滤器",但没有找到答案.

我的问题是,如何指定我的过滤器适用的URL?

更新:

我通过在过滤器本身中指定允许的URL来实现此功能.这对我来说很好,但如果有更好/更"弹性"的方式,我会很高兴听到它.

servlets spring-security servlet-filters

6
推荐指数
1
解决办法
6988
查看次数