2014-11-14 2 views
4

저는 Play 프레임 워크에 익숙하지 않아 웹 앱에 대한 인증을 구현하려고합니다.스프링 보안이 적용된 Play Framework?

나는 스프링과 스프링 시큐리티에 대한 경험이 이미 있고이를 사용하고 싶지만, 스프링 보안이 주로 ServletAPI를위한 것이기 때문에 이것이 맞는 것인지 잘 모르겠다.

Play를 Spring Security와 통합하는 것이 합리적입니까?

감사합니다.

https://groups.google.com/d/msg/play-framework/K7l6vHa0UUA/MYDlsaIfJEMJ

가능한 것 같다,하지만 여전히 플레이 특정 구현 (필터 등)의 많은 수행해야 :

추가로 검색 후이 게시물을 발견했다.

+0

궁금한 점은 무엇입니까? 입증 된 강력한 인증 모델을 찾고 스프링 보안과 관련하여 동일한 문제를 조사하고 있습니다. PlayFramework와 함께 사용할 수 있는지 궁금합니다. – costa

+0

Play 용 Pac4j 라이브러리를 사용했습니다. https://github.com/pac4j/play-pac4j 매우 직접적인 구현이며 매우 잘 작동했습니다. 또한 지역 사회는 매우 적극적이고지지 적입니다. – olibur

답변

0

아마도 - Deadbolt 2을 봐야합니다. 그것은 전용 솔루션이므로 상자 밖으로 실행됩니다.

+3

Deadbolt2는 인증 부분 만 제공하므로 인증을위한 구현 솔루션을 구현하거나 찾아야합니다. – Serg

0

예, 스프링 보안 기능을 사용하는 것이 좋습니다. 스프링 보안은 많은 프로젝트에서 사용되어 왔으며 보안 코드 작성은보기보다 훨씬 어렵습니다.

두 가지 문제가 있습니다. 하나는 인증입니다. 인증을 위해서는 뭔가를해야합니다. 이는 스테이트 풀 컨테이너가되도록 놀림을 의미합니다 (그러나이 경우 다시 플레이를 사용하는 이유는 무엇입니까?) 또는 스프링 보안 웹과 데드 볼트를 서로 매우 강하게 던져 인증을 위해 스프링을 사용하지만 쿠키의 장점과 통합하여 서버 측 세션 객체에 물건을 저장할 필요가 없습니다. 그래도 모든 요청에 ​​대해 어딘가에 권한을 부여하는 권한을 가져와야합니다. 세션 크기를 줄이려고합니다.

보안 개체에는이 작업을 수행하는 방법에 대한 좋은 힌트도 있습니다.

threadlocal 또는 다른 것에 인증 객체가 저장되어있는 한, 봄 인증이 어렵지 않습니다. 래퍼에서 스프링 액세스 결정 투표자를 호출하는 것을 만듭니다.

def handleRequest ... { 
    withAuthorization(<list of roles necessary>) { 
    service code 
    } 
} 

등의 트릭을 수행해야합니다. 추가 할 때, threadlocal에 플래그를 추가하십시오. 플래그가 있으면 테스트에서 권한 부여가 필요한 어설 션을 쉽게 작성할 수 있습니다. 이것은 개발자가 갈 수있는 가장 큰 보안 문제 중 하나입니다. - https://cwe.mitre.org/data/definitions/862.html

희망이 도움이 될 것입니다.

관련 문제