예, 스프링 보안 기능을 사용하는 것이 좋습니다. 스프링 보안은 많은 프로젝트에서 사용되어 왔으며 보안 코드 작성은보기보다 훨씬 어렵습니다.
두 가지 문제가 있습니다. 하나는 인증입니다. 인증을 위해서는 뭔가를해야합니다. 이는 스테이트 풀 컨테이너가되도록 놀림을 의미합니다 (그러나이 경우 다시 플레이를 사용하는 이유는 무엇입니까?) 또는 스프링 보안 웹과 데드 볼트를 서로 매우 강하게 던져 인증을 위해 스프링을 사용하지만 쿠키의 장점과 통합하여 서버 측 세션 객체에 물건을 저장할 필요가 없습니다. 그래도 모든 요청에 대해 어딘가에 권한을 부여하는 권한을 가져와야합니다. 세션 크기를 줄이려고합니다.
보안 개체에는이 작업을 수행하는 방법에 대한 좋은 힌트도 있습니다.
threadlocal 또는 다른 것에 인증 객체가 저장되어있는 한, 봄 인증이 어렵지 않습니다. 래퍼에서 스프링 액세스 결정 투표자를 호출하는 것을 만듭니다.
def handleRequest ... {
withAuthorization(<list of roles necessary>) {
service code
}
}
등의 트릭을 수행해야합니다. 추가 할 때, threadlocal에 플래그를 추가하십시오. 플래그가 있으면 테스트에서 권한 부여가 필요한 어설 션을 쉽게 작성할 수 있습니다. 이것은 개발자가 갈 수있는 가장 큰 보안 문제 중 하나입니다. - https://cwe.mitre.org/data/definitions/862.html
희망이 도움이 될 것입니다.
궁금한 점은 무엇입니까? 입증 된 강력한 인증 모델을 찾고 스프링 보안과 관련하여 동일한 문제를 조사하고 있습니다. PlayFramework와 함께 사용할 수 있는지 궁금합니다. – costa
Play 용 Pac4j 라이브러리를 사용했습니다. https://github.com/pac4j/play-pac4j 매우 직접적인 구현이며 매우 잘 작동했습니다. 또한 지역 사회는 매우 적극적이고지지 적입니다. – olibur