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

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. Simply wanna input on few general things, The website pattern is perfect, the subject matter is rattling wonderful : D.

  2. After going over a number of the blog articles on your blog, I really appreciate your technique of writing a blog. I book marked it to my bookmark site list and will be checking back in the near future. Take a look at my website too and let me know what you think.

  3. An outstanding share! I’ve just forwarded this onto a coworker who had been conducting a little homework on this. And he in fact ordered me dinner because I found it for him… lol. So allow me to reword this…. Thanks for the meal!! But yeah, thanks for spending time to talk about this subject here on your internet site.

  4. here are some hyperlinks to internet sites that we link to for the reason that we think they are really worth visiting

  5. Here is a great Weblog You may Locate Exciting that we Encourage You

  6. Very good post. I’m facing some of these issues as well..

  7. You really make it seem so easy with your presentation but I find this matter to be really something that I think I would never understand. It seems too complicated and extremely broad for me. I am looking forward for your next post, I will try to get the hang of it!

  8. we came across a cool website that you just could love. Take a search when you want

  9. we like to honor many other internet websites around the web, even when they arent linked to us, by linking to them. Under are some webpages worth checking out

  10. This is a topic that’s close to my heart… Thank you! Exactly where are your contact details though?

  11. Howdy! This blog post could not be written any better! Reading through this post reminds me of my previous roommate! He always kept talking about this. I’ll forward this article to him. Fairly certain he’s going to have a very good read. I appreciate you for sharing!

  12. I couldn’t refrain from commenting. Perfectly written!

  13. I love reading through a post that will make people think. Also, thanks for permitting me to comment!

  14. You ought to be a part of a contest for one of the greatest websites on the net. I’m going to highly recommend this website!

  15. below youll obtain the link to some web pages that we feel you ought to visit

  16. I blog quite often and I seriously thank you for your content. This article has really peaked my interest. I am going to bookmark your website and keep checking for new information about once a week. I subscribed to your Feed as well.

  17. Your style is very unique compared to other folks I’ve read stuff from. I appreciate you for posting when you have the opportunity, Guess I will just book mark this site.

  18. I was very happy to uncover this website. I wanted to thank you for ones time due to this wonderful read!! I definitely enjoyed every little bit of it and I have you book-marked to see new things in your blog.

  19. Excellent post. I will be dealing with many of these issues as well..

  20. I was looking through some of your articles on this website and I believe this website is very instructive! Continue putting up.

  21. Useful information. Fortunate me I discovered your website accidentally, and I am surprised why this twist of fate did not took place in advance! I bookmarked it.

  22. Hi! I simply would like to offer you a huge thumbs up for your excellent information you have got right here on this post. I am coming back to your website for more soon.

Leave a Reply



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