Using Spring Security 2

참조: http://www.parleys.com/display/PARLEYS/Home#slide=1;title=Using%20Spring%20Security%202;talk=19267601

귿. 발표자 말투도 느린편이고, 억양도 알아들을만 합니다. 어제 들은 아리드안 코일러의 AOP 발표에 비하면 훨씬 알아 듣기 쉬운것 같네요.

데모 코드는 스크린캐스팅에 잡히지 않아서 참조할 수 없었지만, 대충 말해주면서 코딩하기 때문에 어떻게 코딩하는지 눈치챌 수 있습니다. 물론 Spring Security 2에 새로 도입한 스키마들을 알고 계셔야게죠.

몇 가지 정리해둡니다.

1. URL 권한 확인으로는 충분하지 않다.
– 리소스랑 URL이랑 1:1로 맵핑되는게 아닌 경우.
/listCustomers.html 과 /print.view?page=listCustomers 이 두 개의 URL이 같은 리소스를 나타낼 경우 권한처리를 어떻게 할 것인가
– URL이 없을 수도 있다.
Web Application이 아닌 경우 권한 처리는?
– 여러 Ajax 요청을 처리하는 하나의 URL
헤더 정보만 조금씩 다른데, 그 정보에 따라 권한 처리해야 할테네 어떻게 할텐가?

=> Method Authonrization!!

2. 메소드 권한처리
– AspectJ 포인트컷 표현식 사용 가능
– @Secured 애노테이션 사용 가능
– JSR 250의 @RoleAllowed 사용 가능

3. 베스트 프랙티스
– URL 체크로 개괄적인(corse grained) 권한 처리를 한다.
– 메소드 체크로 세밀한(fine grained) 권한 처리를 한다.
– Role 사용하지 말고, Right를 사용하라. User <–> Role <–> Riht
@Secured(“PERM_DELETE_USER)
public oid deleteUser(User user)

마지막 문구

Spring Security is more powerful than Acegi was
… and now it is also easy 😉

드디어 Spring Security 2.0 Released!!

http://www.springframework.org/node/627

아 이 녀석의 POM 때문에 어제 고생한 걸 생각하면…OTL 이번 배포판에서는 스프링 2.5.0 이상의 버전을 사용하도록 명시했군요. 대체 왜 [2.0, 2.5]라고 한건지.. 그냥 2.0 이라고 하면 알아서 2.0 이상의 버전을 쓸텐데 말이죠. petclinic 예제도 봐야겠습니다.

2.0에 추가된 기능들 요약
– OpenID 지원
– NTLM
– JSR 250 애노테이션
– AspectJ 포인트컷 표현식
– 도메인 ACL 기능강화
– RESTful URI 권한
– 그룹
– 계층적인 권한
– user 관리 API
– 데이터베이스 기반 “remember me”
– portlet 인증(로그인)
– 언어 추가
– Web Flow 2.0 지원
– Spring IDE 시각화와 자동완성
– 스프링 웹 서비스 1.5를 사용하여 WSS 기능 지원 강황

우왕.. 몇 개 빼고 다 해보고 싶네요.

참조 할 것
http://www.jroller.com/habuma/entry/method_level_security_in_spring <– 메소드 레벨 Security 모든 방법 소개. SIA 저자. 굳.

Spring Security 2.0 Milestone 1 드디어 나옴.

스프링 포럼에서 젤 먼저 알려주는 군요.

다운로드 받기.
변경사항 보기.

gk21.xml
위 XML 파일을 보시면 Spring Secutiry 2.0 이전의 설정 방법은 전부 주석처리를 해두었기 때문에, 비교하면서 볼 수 있습니다.

근데 왜 필요한 네임스페이스는 등록도 안 해둔거지..-_-;; 어떡하라고.. 벤 알렉스!

레퍼런스도 별로 바뀐게 없는 듯 합니다.