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

j_spring_security_check不可用

狄兴邦
2023-03-14

我将Spring Security从2升级为3

以前的security.xml具有AuthenticationProcessingFilter和AuthenticationProcessingFilterEntryPoint

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">
<beans:bean id="userAuthenticationService"
    class="com.raykor.core.service.UserAuthenticationService" />

<beans:bean id="shaEncoder"
    class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" />

<global-method-security />

<http auto-config="false" entry-point-ref="authenticationProcessingFilterEntryPoint">

    <intercept-url pattern="/resettingPassword.do**" access="ROLE_ADMIN" />
    <intercept-url pattern="/resetPassword.do**" access="ROLE_ADMIN" />
    <logout logout-success-url="/index.jsp" invalidate-session="true" />
</http>

<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="userAuthenticationService">
        <password-encoder ref="shaEncoder">
            <salt-source user-property="salt" />
        </password-encoder>
    </authentication-provider>
</authentication-manager>

<beans:bean id="authenticationFilter"
    class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
    <beans:property name="filterProcessesUrl" value="/j_spring_security_check" />
    <beans:property name="authenticationManager" ref="authenticationManager" />
    <beans:property name="authenticationFailureHandler"
        ref="failureHandler" />
    <beans:property name="authenticationSuccessHandler"
        ref="successHandler" />
</beans:bean>

<beans:bean id="successHandler"
    class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
    <beans:property name="alwaysUseDefaultTargetUrl" value="false" />
    <beans:property name="defaultTargetUrl" value="/home.do" />
</beans:bean>

<beans:bean id="failureHandler"
    class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
    <beans:property name="defaultFailureUrl" value="/login.do?error=true" />
</beans:bean>

<beans:bean id="authenticationProcessingFilterEntryPoint"
    class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
    <beans:property name="loginFormUrl" value="/login.do" />
    <beans:property name="forceHttps" value="false" />
</beans:bean>

共有1个答案

祖波光
2023-03-14

您实例化了UsernamePasswordAuthenticationFilter,但它不会仅仅通过创建它就成为安全筛选器链的一部分。尝试从httpconfig元素中删除auto-config=“false”,并在其中包含一个 元素。我认为您通过bean定义完成的所有配置都可以使用更简洁的名称空间配置来完成,这应该是Spring Security3的首选配置。

 类似资料:
  • 我正在尝试构建一个基于Spring的web应用程序,我想从配置一个基于存储在数据库表中的用户名和密码元组的简单身份验证系统开始。 我的理解是,使用Spring security可以很容易地实现这一点,但我无法使其工作。 下面是我的web.xml文件。 跟随servlet-context.xml文件。bob和sam用户用于测试目的。在我得到这个权利之后,我将切换到一个基于JDBC的用户服务。 当我将

  • 问题内容: 我已经安装了Spring安全性,并且通过login.jsp登录可以正常工作。 现在,我必须根据URL自动使用户登录(类似于Single Sign On)。我基本上在URL中有一个path参数,该参数基本上是一个加密代码,我对该代码进行处理以进行自动登录。 我正在修改我的LoginController以检查我是否具有有效的路径参数,使用该参数获取用户名和密码,并使用此用户名和密码 这将我

  • 这是我的Spring安全豆 这是我的MVC-dispatcher servlet 这是我的web.xml

  • 问题内容: 我在这里问了有关最新的Spring框架和基于代码的配置的问题 initializer MVC config security config security initializer custom login 但是,现在我有关于自定义登录的新问题。 发布到j_spring_security_check时,我会收到http 302。 我正在请求/,但登录后仍保留在登录页面上。 因为我使用的

  • security_applicationcontext.xml UserDetailService实现 } 斯塔克特雷斯。虽然没有例外,但我捕获了stacktrace以供参考。