실시간 포스팅 두번째. 배터리가 다 되서 오후에는 더 이상 못하겠지만.

Ben Alex의 두번째 세션. 좁은 장소인데 상당히 많은 사람들이 찾아서 자리가 모자라 의자를 가지고 들어와서 들을만큼 인기가 대단하다. 참석자의 2/3정도는 SpringSecurity를 사용할 정도로 이미 많이 보급된 듯 하다.

2.5의 새로운 기능의 소개보다는 2.0의 전반적인 소개가 대부분인듯 하다.

 

핵심 기능 세가지는 Authentication, URL authorization, Method nocation authorization이다. 권한부여 부분이 2가지로 구분되는 것이 특징. 그 밖에 Channel, ACLs, WSS(SWS), Flow Auth(SWF). 등이 지원된다. 어제 Keynote에 사용된 데모에서 SWF+SpringSecurity가 적용되었다.

다양한 인증기술과 제품과 결합한다. NTML도 지원한다. 각종 SSO RFC1945,2617, JSR250, Grails, Mule, DWR, … 등등등. Spring Python과 .NET에도 포팅되었다고.

WebApp뿐 아니라, batch, Swing, Flex, GWT, Int. Test, .Net Remoting에서도 사용될 수 있다.

간단한 web app용 security도 제대로 적용하려면 고려해야 할 것이 매우 많다. 그것을 직접 다 구현하는 것은 결코 좋은 방법이 아니다. 또는 적지 않은 부분을 놓칠 수  있다.

 

1. Filter

DelegatingFilterProxy -> request를 FilterChain으로 매핑.

FilterChain은 BeanID를 가지고 있다. Legacy style(1.x)의 확장을 위해서는 BeanIds 클래스에 정의된 id이름을 확인할 것.

2. Authentication choices

Form, Basic LDAP, NTLM, Container, JAAS,… 등등등. 입맛에 맞게 골라 쓰며 된다.

Basic Authentication 권장 – 매우 간단하기 때문에 폭 넓게 적용가능하고, 리모팅 프로토콜을 이용할 수 있다. 단, 암호화가 안되어있으므로 HTTPS를 사용할 것! Spring의 Remoting에 결합되어져서 바로 사용할 수 있다. 기본적으로 인증방법을 설정하지 않으면 B.A가 사용된다. B.A 인증을 테스트 할 때 wget을 사용해서 간단히 console에서 테스트 가능(데모에 적용..)

3. Repository

인증된 사용자의 부가적인 정보를 제공.

JDBC repository – DB. <jdbc-user-details data-source-ref="xxxx" />로 기본 schema에서 정보를 가져올 수 있다. 초간단.

UserDetailService를 확장해서 custom repository를 만들 수 있다. 맨날 하던 작업..

 

쉬어가는 사진. 옆자리에서 열심히 강의를 듣고 있는 영회 한 컷.

사진 003

 

기타 고려사항.

  • HTTP만 가능하다면 digest를 고려할 것. cross-site request forgery issue를 고려할 것.
    • Request forgery 문제에 대한 가장 간단한 해결책은 중요한 정보변경등에 GET을 사용하지 말 것.
  • Database driven remember-me token을 쓰면 여러 시스템에 걸쳐서 remember-me의 적용이 간단해진다.
  • hashing password할 때 salt를 사용할 것.
  • Data-binding config. 방식을 잘 이해할 것.
  • HDIV프로젝트를 살펴보자

4. Web Authroization

<intercept-url>의 설정을 변경해서 사용.

고급 사용자라면 db에서 실시간으로 attrib.을 가져와 적용할 수 있다.

<intercept-url>은 top-down으로 적용된다. 따라서 specific. pattern을 꼭 위에 둘 것. 결국 URL은 아래로 갈 수록 간단해진다.

5. Method Authorization

가장 강력하고, 유연한 방법. Ben’s favorite.

가장 reusable하다. SpringAOP, AspectJ에 모두 적용가능.

Around advice type을 이용해서 적용되었다.

Method metadata – Annotations, XML, AspectJ Pointcut 또 SpringEL (3.0) 방식의 annotation도 사용가능.

@JSR250 – official standard annotation 또는 SS@Secured를 사용할 수 있다.

<global-method-security xxx="true" /> 라고 설정하면 된다.

Instance-based XML을 사용할 수 있다. 즉, bean 단위에 intercept-method 설정이 가능하다는 뜻. 여러개의 인스턴스를 각각 빈으로 만드는 경우 유용할 수 있겠다.

AspectJ pointcut을 이용하면 class-based로 설정할 수 있다.

6. Security 2.5 expression language

hasRole, hasAnyRole, hasPermission, isAnony.., isRemberMe… 등의 다양한 표현식을 가질 수 있다.

 

web이 아니면 method auth를. @JSR25으로 시작하고, 필요에 따라 EL을 적용. type-level 설정이 적당하지 않으면 instance-based xml 설정을 적용한다. 특별한 경우가 아니라면 @Secured나 protect-pointcut은 배제.

Spring 2.5의 가장 큰 변화는 EL의 적용으로 세밀한 annotation방식의 method auth.가 가능해졌다는 것이다.

EL을 이용해서 상당히 복잡한 조건 권한설정도 적용하는 것이 가능하다는 것이 Spring2.5의 가장 큰 매력. 물론 Spring3.0과 함께 사용해야 하겠지만 말이다. SpringSecurity에 적용되는 것을 보니 Spring3.0 EL의 활용방법이 매우 다양할 수 있겠다는 생각이 든다.

이제 점심 먹어야지.

Related posts:

  1. S1A 2008 셋째날 – Spring JavaConfig
  2. S1A 2008 셋째날 정리
  3. S1A 2008 넷째날 정리
  4. SpringOneAmerica 2008 첫날
  5. S1A 2008 둘째날 – Grails
  6. SpringOneAmerica 2008 그리고 SpringSource Webinar
  7. S1A 2008 사진모음
  8. S1A 2008 둘째날 정리
  9. SpringOne 2008 (1) – OSGi
  10. 블로그 업데이트, 스킨 교체, SNS(FB,TW,M2,BZ) 공유기능 추가
  11. 유쾌한 이슈처리 재촉 메일
  12. [토스3] 스프링 3.0.4 <mvc:default-servlet-handler/>를 이용해서 UrlRewriteFilter없이 깔끔한 URL을 만들기
  13. 미국여행을 위한 전자허가는 Spring을 이용해서
  14. Spring 3.0 (39) Spring 3.0 M3 공개
  15. Spring 3.0 (27) R-599 JDK1.5+ Concurrent

Facebook comments:

to “S1A 2008 둘째날 SpringSecurity 2.5”

  1. 저 친구는 언제 봐도 멋있군.
    EL에서 and, or, 조건문 쓰는거 쵝오야~

  2. 영회/ 저 친구 이름을 YouTube에서 검색해보면 더 멋있는 것도 나와…

  3. 머야~~
    안되겠다.. 나도 사진 올려야지

  4. look at this website…

    Full Article…

  5. bluehost review…

    bluehost review…

  6. jason aldean tickets…

    jason aldean tickets…

  7. kia warranty transfer to second owner…

    kia warranty transfer to second owner…

  8. 2zE1NH akjsyyuwcutd, [url=http://tgieddukxlni.com/]tgieddukxlni[/url], [link=http://upyxhyxxcppe.com/]upyxhyxxcppe[/link], http://xtyjtszcpbxv.com/

  9. mbt antishoes S1A 2008 둘째날 SpringSecurity 2.5 » Toby’s Epril

  10. mbt tunisha S1A 2008 둘째날 SpringSecurity 2.5 » Toby’s Epril

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha