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

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. An intriguing discussion is worth comment. There’s no doubt that that you ought to publish more on this subject, it might not be a taboo subject but typically people do not discuss such subjects. To the next! Many thanks.

  2. below you will locate the link to some web pages that we assume you’ll want to visit

  3. Thanks-a-mundo for the blog post. Awesome.

  4. the time to read or go to the content material or web sites we have linked to beneath the

  5. Very nice blog post. I definitely love this site. Keep writing!

  6. one of our visitors not too long ago advised the following website

  7. is there any other site which presents these stuff

  8. always a large fan of linking to bloggers that I really like but really don’t get a good deal of link appreciate from

  9. Really appreciate you sharing this blog article.Really thank you! Will read on

  10. I’а†ve read several good stuff here. Definitely price bookmarking for revisiting. I surprise how so much effort you put to create this kind of great informative web site.

  11. Thanks again for the post.Much thanks again. Really Great.

  12. I really love your website.. Excellent colors & theme. Did you develop this site yourself? Please reply back as I’m looking to create my very own blog and would like to learn where you got this from or just what the theme is called. Many thanks.

  13. You’re so awesome! I do not suppose I’ve truly read something like this before. So great to discover somebody with original thoughts on this issue. Really.. many thanks for starting this up. This site is something that is needed on the internet, someone with a bit of originality.

  14. Thanks! Fantastic information. cialis generic

  15. very couple of web-sites that occur to become detailed beneath, from our point of view are undoubtedly nicely worth checking out

  16. Appreciate you sharing, great blog article.Really looking forward to read more. Great.

  17. You ought to be a part of a contest for one of the greatest websites on the web. I will recommend this site!

  18. Many thanks. Loads of knowledge!

    provigil side effects cheap viagra

  19. Hello there! This post could not be written much better! Looking at this article reminds me of my previous roommate! He continually kept preaching about this. I will send this information to him. Fairly certain he’ll have a good read. I appreciate you for sharing!

  20. Really informative article post.Really looking forward to read more. Want more.

  21. Say, you got a nice blog article.Really thank you!

  22. Generic Cialis Professional http://ggenericcialisle.com – Cialis Cheap Viagra For Sale Fast Shipping cialis generic Zithromax Annostus

  23. When I open up your Feed it seems to be a ton of junk, is the issue on my part?

  24. Good day! I could have sworn I’ve visited this site before but after browsing through some of the articles I realized it’s new to me. Anyways, I’m certainly happy I discovered it and I’ll be bookmarking it and checking back often.

  25. You actually said it wonderfully!
    Ems Participacoes Sa Cialis Online kratom capsules

  26. There is definately a great deal to find out about this topic. I love all the points you made.

  27. one of our guests lately recommended the following website

  28. very handful of web-sites that transpire to become comprehensive beneath, from our point of view are undoubtedly very well worth checking out

  29. Thanks! Quite a lot of info!
    neurontin

  30. Way cool! Some extremely valid points! I appreciate you penning this write-up and also the rest of the website is extremely good.

  31. that would be the end of this article. Right here you will obtain some sites that we consider you will value, just click the links over

  32. Really lots of wonderful information. viagra generic

  33. Many thanks, Quite a lot of material.
    cialis generic

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