2015-01-29 4 views
0

방금 ​​Grails를 시작했는데 여전히 내 머리를 쓰려고합니다. 제 시스템에는 보통 컨트롤러와 나머지 컨트롤러의 두 종류가 있습니다. Ananymous 사용자가 일반 컨트롤러의 작업에 착륙 한 경우 해당 사용자가 인증 할 CAS 서비스로 리디렉션되기를 원합니다. 그런 다음 CAS는 티켓을 사용하여 내 시스템으로 다시 리디렉션해야합니다. 티켓을 받으면 인증 된 엔티티의 신원 (SSN)을 제공하는 것과 똑같은 서비스를 요청해야합니다. SSN을 가짐으로써 다른 서비스에 해당 사용자의 권한을 정의하는 그룹을 제공해야합니다. 그런 다음 세 번째 서비스에 체크인하여 사용자에 대한 모든 추가 정보를 얻고 내 데이터베이스에 사용자 항목을 작성해야합니다. 모든 작업을 완료하고 전체 프로세스가 원활하게 진행 되었다면 사용자의 워크 플로우는 계속 진행되어야합니다. 요청이 나머지 컨트롤러의 작업에 대해 수행되면 403 헤더 json 형식의 오류가 반환되어야합니다. 모든 것이 무국적입니다. 인증 토큰은 헤더에 남아 있어야하고 토큰은 클라이언트 측에 저장됩니다. 나는 사용자 인증에 대한 상당히 맞춤형 솔루션이라고 생각한다. 그리고 이것은 내가 automagic을 좋아하지 않을 때 그런 종류의 상황이다. 아아 나는 여기있다.Grails CAS와 REST 설정

그래서 나는 지금입니다. 내 Grails의 응용 프로그램에 3 플러그인을 추가 한 :

compile ":spring-security-core:2.0-RC4" 
compile ":spring-security-cas:2.0-RC1" 
compile ":spring-security-rest:1.4.1" 

내가 설정 다음과 같은 설정을 가지고 (도메인 이름은 모호) :

grails.plugin.springsecurity.userLookup.userDomainClassName = 'package.User' 
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'package.UserRole' 
grails.plugin.springsecurity.authority.className = 'package.Role' 
grails.plugin.springsecurity.cas.loginUri = '/login' 
grails.plugin.springsecurity.cas.serverUrlPrefix = 'https://example.com' 
grails.plugin.springsecurity.cas.proxyCallbackUrl = '${grails.serverURL}/secure/receptor' 
grails.plugins.springsecurity.cas.serviceUrl ="/j_spring_cas_security_check" 

하지만 내가 약간의 비트 여기 peaces를 놓치고 있다는 확신 거기. 지금은 무엇이 있습니까? 현재 권한이없는 사용자는/auth/login으로 리다이렉트되며 일반적인 스프링 보안 로그인 폼이 나를 인증하여 인증합니다. 나는 그 행동을 끌 수 있었으면 좋겠다.

우선 저는 봄 보안을 통해 평소 인증 대신 인증을 위해 CAS로 리디렉션 할 수 있는지 묻고 싶습니다.

두 번째로 인증 프로세스에 대한 사용자 지정 동작을 구현할 수있는 방법에 대해 질문합니다.

세 번째로, 2 문장의 누구나 봄 보안의 필터와 컨텍스트가 정확히 무엇인지 설명 할 수 있습니까? 어쩌면 전체 프로세스가 어떻게 작동 하는지를 깊이있게 설명하는 기사가있을 것입니다.

고맙습니다.

+0

나는 또한 다음 기사를 찾았습니다. http://blogs.bytecode.com.au/glen/2010/01/15/hacking-custom-authentication-providers-with-grails-spring-security.html 이것이 나를 도울 수 있고 일을하는 올바른 방법 일지 궁금해. –

답변

0

첫 번째 질문에 대한 답을 찾았습니다. 버그가보고되고 논의되었습니다 : https://jira.grails.org/browse/GPSPRINGSECURITYCAS-4#issue-tabs 간단히 말해, cas plugin 매개 변수의 모든 기본 구성 매개 변수를 복사해야합니다. 이로 인해 cas 플러그인이 제대로 초기화됩니다.

다른 두 개의 수정/설명을 계속 살펴 보겠습니다.

관련 문제