2013-07-17 3 views
1

내 문제를 설명해 드리겠습니다. 예를 들어,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 ** 액세스 권한을 부여하려고했지만이 페이지를 찾을 수 없습니다. 아무도 여기서 무슨 일이 일어날 지 알고 있습니까?

미리 감사드립니다.

+0

이렇게 정말 각도와 관련이 없습니다 –

+4

# 뒤에있는 URL의 모든 부분은 브라우저에서만 볼 수 있다는 것을 알고 있습니까? 각도는 주소 표시 줄의 URL을 변경하지만 서버에 대한 요청은 없습니다. 서버에 대한 요청은 partial을 가져오고 REST 서비스를 호출하는 데 사용되는 AJAX 요청뿐입니다. 그것이 당신이 확보해야하는 것입니다 : REST 서비스. –

답변

0

AngularJS을 HTTP 보안 헤더 (x-auth-token)로 노출하여 Spring Security와 통합하는 방법을 설명하는 약간의 글자로 sample application을 작성했습니다. 이 샘플에서는 클라이언트 AngularJS 응용 프로그램이 응답 할 수 있도록 (간단한) 권한 부여 (서버에서 역할 반환)도 제공합니다. 이것은 주로 사용자 경험 (UX)을 목적으로합니다. REST 엔드 포인트에 속성 보안이 있는지 항상 확인하십시오.

내 블로그 게시물은 here입니다.

관련 문제