即使在成功进行身份验证后,也无法访问管理控制器中映射的链接,并且显示404错误

时间:2017-08-15 20:36:03

标签: spring spring-mvc spring-security

我正在开发一个电子商务项目,我使用spring security来验证用户。实际上该项目工作正常,但当我以管理员身份登录时,它向我显示我成功进行身份验证作为管理员,当我点击其请求映射在管理员控制器中的链接时,它显示404错误,页面无法找到。 的 WEB.XML

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID">

<display-name>Archetype Created Web Application</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
             /WEB-INF/dispatcher-servlet.xml    
    </param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!-- SPRING SECURITY CONFUGRATION -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
     /WEB-INF/spring-security.xml   
    </param-value>
</context-param>
<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<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>

弹簧security.xml文件

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans     
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security.xsd">

<context:component-scan base-package="com.**" />

<security:http auto-config="true" >
    <security:intercept-url pattern="/webapp/resources/**" access="permitAll"/>
    <security:intercept-url pattern="/login" access="permitAll"/>
    <security:intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/>
    <security:intercept-url pattern="/user/**" access="permitAll"/>

    <security:form-login
         login-page="/login"
         username-parameter="username"
         password-parameter="password"
         authentication-success-forward-url="/userLogged"/>

    <security:access-denied-handler
          error-page="/error"/>    

    <security:csrf  disabled="true"/> 

    <security:logout
       logout-url="/logout"
       invalidate-session="true"
       logout-success-url="/" />      
 </security:http>

 <security:authentication-manager>
    <security:authentication-provider>
       <security:jdbc-user-service 
                    data-source-ref="dataSource"
                    users-by-username-query="select email, password, 'TRUE' as enabled from user where email=?"
                    authorities-by-username-query="select email, role from user where email=?"

                    />

       </security:authentication-provider>
    </security:authentication-manager>

管理控制器

@RequestMapping("/admin")
@Controller
public class adminController {


     @RequestMapping("/insert")
         public ModelAndView insertPage(){
         ModelAndView mav =new ModelAndView("insert");
             return mav;
        }
}

登录页面

<form  id="form" action="${pageContext.request.contextPath}/login" method="post" class="modal-content animate">
                    <div class="imgcontainer">
                        <img src="<c:url value="/resources/img/profile.png"/>"
                            alt="Avatar" class="avatar">
                    </div>

                    <div class="formcontainer">
                        <label><b>Username</b></label> <input type="text"
                            placeholder="Enter Username" name="username" required> <label><b>Password</b></label>
                        <input type="password" placeholder="Enter Password"
                            name="password" required>
                        <button type="submit">Login</button>
                        <input type="checkbox" checked="checked"> Remember me
                    </div>

                    <div class="formcontainer" style="background-color: #f1f1f1">
                        <button type="button"
                            onclick="document.getElementById('id01').style.display='none'"
                            class="cancelbtn">Cancel</button>
                        <span class="psw"><a href="#">Forgot password?</a></span>
                    </div>
                </form>

Error screenshot

0 个答案:

没有答案