내 문제를 설명해 드리겠습니다. 예를 들어,AngularJS 및 스프링 보안. 스프링 보안을 사용하여 AngularJS URL을 처리하는 방법
여기http://localhost:8080/example/resources/#/
우리가 다른 페이지를 호출 할 수있는 로그인 페이지 :
http://localhost:8080/example/resources/#/login
관리자 페이지 :
http://localhost:8080/example/resources/#/admin
을 I는 다음과 같이 액세스 할 AngularJS와의 사이트를 구현
사용자 페이지 :
http://localhost:8080/example/resources/#/user
이제 모든 호출을 포착하고 ROLE_USER 권한이 있는지 확인하기 위해 예제에서 스프링 보안을 구현했습니다. 사용자가 적절한 역할을 가지고 있으며, 잘 작동, 401 권한 페이지를 throw하는 경우라고 모든 URL에 대한
<security:http create-session="stateless" entry-point-ref="restAuthenticationEntryPoint"
authentication-manager-ref="authenticationManager">
<security:custom-filter ref="customRestFilter" position="BASIC_AUTH_FILTER" />
<security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>
이 구성 검사 : 지금까지 너무 좋아, 나는 봄 보안 컨텍스트 파일에서이 구성처럼했을 .
난`이 갖는 문제는 모든 사람에 의해 액세스 할 수 있도록 로그인 페이지를 넣을 때 나는 그것을 이런 식으로 할 것이 오 :
<security:http create-session="stateless" entry-point-ref="restAuthenticationEntryPoint"
authentication-manager-ref="authenticationManager">
<security:custom-filter ref="customRestFilter" position="BASIC_AUTH_FILTER" />
<security:intercept-url pattern="/login**" access="ROLE_ANONYMOUS" />
<security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>
을하지만 봄 보안이 URL을 잡기되지 않는 이유를 잘 모릅니다 . 아마도 Angular는 URL을 다르게 관리합니다.
마지막으로 <security:intercept-url pattern="/**" access="ROLE_USER" />
을 삭제하고 ROLE_USER에만/login ** 액세스 권한을 부여하려고했지만이 페이지를 찾을 수 없습니다. 아무도 여기서 무슨 일이 일어날 지 알고 있습니까?
미리 감사드립니다.
이렇게 정말 각도와 관련이 없습니다 –
# 뒤에있는 URL의 모든 부분은 브라우저에서만 볼 수 있다는 것을 알고 있습니까? 각도는 주소 표시 줄의 URL을 변경하지만 서버에 대한 요청은 없습니다. 서버에 대한 요청은 partial을 가져오고 REST 서비스를 호출하는 데 사용되는 AJAX 요청뿐입니다. 그것이 당신이 확보해야하는 것입니다 : REST 서비스. –