사용자가 아직 로그인하지 않은 경우 그는 ROLE_USER
이 없기 때문에 스프링 보안은 /login
에 액세스 할 수 없습니다. ,
<http use-expressions="true">
<!-- ... -->
<security:intercept-url pattern="/login*" access="permitAll" />
플러스의 login.jsp가 /WEB-INF/jsp/login.jsp
아래에 있는지 확인 :
이에 use-expressions="true"
to <http>
element 변경 차단 선을 추가합니다. 당신이 스프링 시큐리티 3.1을 사용하는 경우,
<http auto-config='true' use-expressions="true">
<intercept-url pattern="/login*" access="permitAll"/>
<intercept-url pattern="/**" access="ROLE_USER" />
<!-- use login-page='/login' assuming you've got
Spring MVC configured to redirect to login.jsp -->
<form-login login-page='/login'/>
</http>
또는 :
편집 코멘트 후 :
는 전혀 봄 보안 설정이없는 것처럼 보일 때문에이 시작
:
<http pattern="/login" security="none" />
<http auto-config='true'>
<intercept-url pattern="/**" access="ROLE_USER" />
<!-- use login-page='/login' assuming you've got
Spring MVC configured to redirect to login.jsp -->
<form-login login-page='/login'/>
</http>
하는 것은 예를 들어 내용 /WEB-INF/jsp/login.jsp
파일을 만듭니다
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h3>Login</h3>
<c:if test="${not empty error}">
<div class="errorblock">
Your login attempt was not successful, try again.<br /> Caused :
${sessionScope["SPRING_SECURITY_LAST_EXCEPTION"].message}
</div>
</c:if>
<form name='f' action="<c:url value='j_spring_security_check' />"
method='POST'>
<table>
<tr>
<td>User:</td>
<td><input type='text' name='j_username' value=''>
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='j_password' />
</td>
</tr>
<tr>
<td colspan='2'><input name="submit" type="submit"
value="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>
스프링 보안에 대한 자세한 내용은이 프레임 워크의 기본 사항을 참조하십시오.
존재하지 않는 뷰 이름 "로그인"을 반환하는 중 오류가 발생했습니다 (즉, 해당 JSP가 없음). Spring Security와는 아무런 관련이 없습니다. 그것은 전적으로 컨트롤러 설정 내에 있으며 Spring Security 필터 체인이 호출 된 후에 발생합니다. –