j_spring_security_check 404问题

Ale*_*eld 5 java spring spring-security

我试图让我的spring + hibernate + spring-security和tiles2 - "HelloWorld"应用程序工作,遵循本指南(不幸的是它在德语).

我的问题是登录我的应用程序时收到"404"错误消息.重定向到登录页面按预期工作,但是当我点击登录按钮时,我无法访问" http:// localhost:8080/App/j_spring_security_check ".

我的web.xml看起来像这样:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/defs/applicationContext.xml
        /WEB-INF/defs/applicationContext-security.xml
    </param-value>
</context-param>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
  <filter-name>springSecurityFilterChain</filter-name> 
  <url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

和applicationContext-security.xml文件看起来这样......

<http use-expressions="true">
    <intercept-url pattern="/index.html" access="permitAll" />
    <intercept-url pattern="/timeout.html" access="permitAll" />
    <intercept-url pattern="/redirect.html" access="permitAll" />
    <intercept-url pattern="/media/**" access="permitAll" />
    <intercept-url pattern="/includes/**" access="permitAll" />
    <intercept-url pattern="/office/**" access="hasRole('ROLE_USER')" />
    <intercept-url pattern="/office/admin/**" access="hasRole('ROLE_ADMIN')" />

    <form-login login-page="/index.html" 
            authentication-failure-url="/index.html?login_error=1"
            default-target-url='/office/kunden.html'
            always-use-default-target='true'
            />
    <logout logout-success-url="/index.html" />
    <remember-me />
    <session-management invalid-session-url="/index.html">
        <concurrency-control max-sessions="2" error-if-maximum-exceeded="true" />
    </session-management>
</http>

<authentication-manager>
    <authentication-provider>
        <jdbc-user-service data-source-ref="mysqldataSource" 
                    authorities-by-username-query="select username, authority from benutzer where username = ?"
                    users-by-username-query="select username, password, enabled from benutzer where username = ?"/>
    </authentication-provider>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)

数据库连接似乎没问题

如果有人能给我一个提示,我会很高兴,因为我已经做了很多谷歌搜索,但还没有找到解决方案.

我使用spring 3.1和tomcat 7.0.23

Ral*_*lph 0

你的配置看起来没问题。可能出现 404 错误的一件事是如果default-target-url='/office/kunden.html'指向不存在的控制器或视图。

检查该 url/office/kunden.html是否有效 - 因此停用安全功能(只需添加<security:intercept-url pattern="/**" access="permitAll" />)并尝试。

另一件可能出错的事情是,该教程适用于 spring 3.0,但不是 spring 3.0。我没想到这是原因,但尝试一下并降级。