현재 스프링 부트 1.4.2.RELEASE 및 스프링 보안 4.1.3.RELEASE로 응용 프로그램을 개발 중입니다. 응용 프로그램에는 Rest Controllers가 있으며 json 메시지를 수신하고 이에 응답합니다. 이 응용 프로그램은 Angular 응용 프로그램과 통신합니다. 같은 RestControllers 방법에스프링 보안 필터 체인을 사용하여 응용 프로그램 내부에서 사용자 인증 확인 프로그래밍 방식으로
http.authorizeRequests()
.antMatchers(HttpMethod.POST, "/foo/bar/**")
.access("(hasRole('OPERATOR') && hasRole('MAKER')) || hasRole('ADMIN')")
.anyRequest().authenticated()
.and()
.httpBasic();
그리고 규칙 :
@PreAuthorize("hasRole(#id) || hasRole('ADMIN')")
모든 것을 지금은 봄 Hateoas을 추가 해요, 문제없이 작동하고 은 이미 인증 및 권한 부여가 같은 구성 작업이 있습니다. Hateoas는 리소스에 대한 사용자 권한 부여와 관련이 없지만 각도 앱에 추가 정보를 보낼 수 있기를 바랍니다. 리소스의 링크뿐만 아니라 사용자가 액세스 할 수있는 동작 (http 동사)
응용 프로그램의 보안을 향상시키기 위해이 작업을 수행하고 싶지는 않지만 단지 사용자 환경을 개선하는 것입니다. Angular 앱에서는 서버가 전송하는 기능에 따라 기능을 활성화 또는 비활성화 할 수 있기를 원합니다.
스프링 보안에 사용할 수있는 클래스가 있습니까? URL을 테스트하고 해당 URL에 특정 작업을 실행할 권한이 있는지 확인하기 위해 Autowire를 사용할 수 있습니까?
지금까지 테스트 한 Spring Security 문서에 언급 된 모든 클래스는 @Autowire 주석에 의해 인식되지 않습니다.
잘 이해했다면, 당신은'SecurityContextHolder.getContext(). getAuthentication()'을 찾고 있지 않습니까? – Artegon
@ user1315357 나는이 방법을 알고 있으며 사용자 프로필을 얻습니다. 그러나 사용자가 POST http://example.com/foo/bar와 같이 실행할 수 있는지 여부를 확인하려면 질문에 설명 된 antMatcher에서 선언 한 규칙을 사용하지 않는 논리를 성문화해야합니다. –