Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

보호글

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

스프링시큐리티 시작하기 - XML을 통한 인증 예제(묻지마 따라하기!)

OpenSource/Spring Security 2014.01.14 14:42
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


spring-security 시작하기(묻지마 따라하기!)

1) 설정

2) 테스트

3) 참고문서

4) Tip

5) 같이 보기

 

본 블로그에서 기본프로젝트를 만드는 스프링프레임워크 강좌의 소스를 기반으로 테스트 하였습니다.

고로 web이 구축되어있는 상태에서 spring-security를 구축하는 내용 입니다.^^;


<< 설정 >>

maven 3

Eclipse Indigo

jdk 1.6

springframework 3.1

spring-security 3.1.3.Release 



3.1.0 version은 Bug 있음. 

    - 참고 URL : http://stackoverflow.com/questions/10216563/spring-security-error-

                       creating-bean-org-springframework-security-filterchains

    - 오류내역 : error creating bean with name org.springframework.security.filterchains' 

                     initialization of bean failed


1) pom.xml(해당 jar 가져오기)

 <dependency>

<groupId>org.springframework.security</groupId>

<artifactId>spring-security-core</artifactId>

<version>3.1.3.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework.security</groupId>

<artifactId>spring-security-taglibs</artifactId>

<version>3.1.3.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework.security</groupId>

<artifactId>spring-security-config</artifactId>

<version>3.1.3.RELEASE</version>

</dependency> 


2) web.xml

<!-- Spring Security Filter Proxy -->

<filter>

<filter-name>springSecurityFilterChain</filter-name>

<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>

</filter>

<filter-mapping>

<filter-name>springSecurityFilterChain</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>


※ 아래의 설정으로 context-security.xml 을 가져온다.

<!-- Context definition -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring/context/*.xml</param-value>

</context-param>



3) context-security.xml

<beans:beans xmlns="http://www.springframework.org/schema/security"

xmlns:beans="http://www.springframework.org/schema/beans" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<http auto-config="true">

<intercept-url pattern="/*" access="ROLE_USER" />

</http>

<authentication-manager alias="authenticationManager">

<authentication-provider>

<user-service>

<user authorities="ROLE_USER" name="acet" password="1"/>

</user-service>

</authentication-provider>

</authentication-manager>

</beans:beans>

 

 

심각: Exception starting filter springSecurityFilterChain 관련 bean이 생성되지 않았다는 오류가 날 수가 있다. 제대로 contextConfigLocation 이 설정되지 않았을 가능성이 있다.


 


<< 테스트 >>

was 기동 후 아래의 URL로 접근하면..Login 화면이 나오게 된다.

http://localhost:8080/acet/spring_security_login

 

 


<<  참고문서 >>

SpringSecurity3 - 도마뱀그림 있는 책ㅋㅋ;


<< Tip >>

SpringSecurity version을 조심! 3.1사용 시 3.1.3 Realse를 사용하자!


<< 같이 보기>>

2013/02/13 - [OpenSource/Spring Security] - 먼저 알아두면 좋은스프링 시큐리티 용어


2013/05/19 - [OpenSource/Spring Security] - 스프링 시큐리티 시작하기 Lesson 01


2013/08/12 - [OpenSource/Spring Security] - 스프링시큐리티 - DelegatingFilterProxy


2013/08/17 - [OpenSource/Spring Security] - 스프링시큐리티 - Filter Chain




                                            - END -





저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

스프링시큐리티 - Filter Chain

OpenSource/Spring Security 2013.08.17 17:20
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

 

 

2013/08/12 - [OpenSource/Spring Security] - DelegatingFilterProxy

 

저번 시간에는 DelegatingFilterProxy 요놈에 대해서 알아보았다.

다시금 되짚어보면 이녀석은 web.xml에 filter로써 역할을 한다.

더보기

 

즉, 아래의 bean인 filterChainProxy와 연결(link, binding) 되어진다.

 

더보기

그러므로 filterChainProxy에 대해서 알아보자~~!

우선 Bypassing the Filter Chain 라는게 있다.

 

우리는 인증과 권한 부여 등을 하기 위해 여러가지 filter를 태워야한다.

위의 By passing 즉, 보낸다는 뜻이다 Filter Chain에서~!!

How???

filters="none" 와 같이 설정하면 필터를 타지 않을 것이다.

 

reference에서는 이렇게 말하고 있다.

"This will omit the request pattern from the security filter chain entirely."

you can use the attribute filters="none" ~!! 을 사용함으로써 ^-^good~

 

그와 반대로 filter를 태워야한다면 none가 아닌 filter들이 오면 된다.

ex) Filter Ordering(레퍼런스에서는 filter의 종류를 Filter Ordering이라고 부르고 있다.

더보기

 

 

The order that filters are defined in the chain is very important. : 매우 중요하다고 한다! ㅋㅋ

9가지가 소개되고 있다.

1) ChannelProcessingFilter

2) SecurityContextPersistenceFilter

3) ConcurrentSessionFilter

4) Authentication processing mechnisms - UsernamePasswordAuthenticationFilter

5) SecurityContextHolderAwareRequestFilter

6) RememberMeAuthenticationFilter

7) AnoymousAuthenticationFilter

8) ExceptionTranslationFilter

9) FilterSecurityInterceptor

 

필터에 대한 것들은 차근차근~step by step 알아가보자^-^

 

- 일~단! 끝 -

 

 

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

스프링시큐리티 - DelegatingFilterProxy

OpenSource/Spring Security 2013.08.12 20:51
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

 

스프링 시큐리티~~~시작 해보자^-^good~

 

오늘 알아 볼 것은 DelegatingFilterProxy 이다.

Spring's DelegatingFilterProxy는 link를 제공한다고 한다.

web.xml과 application context 간의!!

 

레퍼런스에 보면

Spring's DelegatingFilterProxy provides the link between web.xml and the application context.

라고 나온다.^^good~~

즉, 아래의 web.xml과 context-security.xml을 보면!!

 

<filter-name>springSecurityFilterChain</filter-name> 의 DelegatingFilterProxy 요녀석이

context-security.xml의 filterChainProxy의 빈과 바인딩 시켜준다~^-^good~

<alias name="filterChainProxy" alias="springSecurityFilterChain"/> 
   <bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">

      .................

 

1) Web.xml

 <filter>
  <filter-name>springSecurityFilterChain</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
 </filter>
 <filter-mapping>
     <filter-name>springSecurityFilterChain</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>

 

2) context-security.xml

<alias name="filterChainProxy" alias="springSecurityFilterChain"/> 
 <bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">

        .................................................

 </bean>

 

 

오늘은 여기까쥐~~~다음은 link되어 찾아진 FilterChainProxy 녀석에 대해서 알아보도록 하겠습니다.^-^bye~

 

 

참고!!

 


 

스프링 시큐리티 좋은 자료! 레퍼런스~~~~pdf~! 소책자로 프린트 해서 보고 있는데 정말 좋은 것 같다!goood~

http://static.springsource.org/spring-security/site/docs/3.0.x/reference/springsecurity.pdf

 

api 문서 참고문서 이다.

http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/

 

 

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

스프링 시큐리티 시작하기 Lesson 01

OpenSource/Spring Security 2013.05.19 23:03
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

2013/02/13 - [OpenSource/Spring Security] - 먼저 알아두면 좋은스프링 시큐리티 용어

 

스프링 시큐리티는 2가지 각도로 보안을 다룬다.

1) 서블릿 필터를 이용하여 웹 요청에 대한 보안과 url 레벨의 접근을 제한한다.

2) AOP를 이용하여 메소드 호출에 보안을 적용 할 수 있다.

한마디로 객체를 Proxying 하고 사용자가 보안이 적용된 메소드를 호출 할 수 있는 적절한 권한을 가지는지 확인하는 advice를 적용 한다.

 

 스프링 시큐리티를 하고자 한다면 모듈을 추가해줘야 한다.(jar) 8가지 모듈을 제공 한다^-^

 모 듈

 설 명

 ACL

 접근 제어 리스트(ACL : Access Control List)를 통해 도메인 객체 보안에 대한 지원 제공

 CAS Client

 JA-SIG의 중앙 인증 서비스(CAS: Central Authenication Service)와 통합 제공

 Configuration

 스프링 시큐리티의 XML 네임스페이스에 대한 지원 제공

 Core

 필수 스프링 시큐리티 라이브러리 제공

 LDAP

 LDAP(Lightweight Directory Access Protocol)을 이용한 인증 제공

 OpenID

 분산 OpenID 표준과의 통합 제공

 Tag Library

 뷰 레벨의 보안에 대한 JSP TAG 모음 포함

 Web

 스프링 시큐리티의 필터기반 웹 보안 지원 제공

 

요정도만 알고..내일 가서 context와 필터 정의(web.xml)을 해보자!

아마도..Web, LDAP을 사용 할 것 같다. Core와 Configuration은 디폴트라고 한다면! ㅎㅎ

아직 뭐가 필요한지는 감이 안오지만 대~~충 서블릿 필터와 AOP를 사용한다는 것만 알고 넘어가자!^-^

 

시작하자! 스프링 시큐리티~~~~~~

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

먼저 알아두면 좋은스프링 시큐리티 용어

OpenSource/Spring Security 2013.02.13 00:58
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


스프링 포트폴리오 프로젝트에 포함 된 스프링 스큐리티! 원래는 아시지 시큐리티(Acegi Security)
였다고 한다.

모든 자바 애플리케이션에 보안을 적용하는데 사용 할 수 있지만, 주로 웹 기반 애플리케이션에 사용 된다.

<<먼저 알아야 할 용어~!>>
1) 인증(authentication) : 주체의 신원을 주체가 주장하는 신원과 대비해 검증하는 과정을 말한다.
2) 주체(principal) : 사용자, 기기, 시스템이 될 수 있으며, 주로 사용자라를 말한다.
3) 크리덴셜(crendetials) : 주체는 인증 받기 위해 신원 증명 정보를 제시 해야한다.
                                    이러한 정보를 크리덴셜 이라고 하며 보통 대상이 되는 주체가 사용자일 경우
                                    비밀번호가 크리덴셜이 된다.
4) 권한 부여(authorization) : 인증 된 사용자에게 권한들을 승인하는 과정으로 이를 통해 사용자는
                                        대상 애플리케이션의 특정 리소스에 접근 할 수 있게 된다. 
                                       권한부여 과정은 항상 인증 과정을 거친 후에 수행돼야 한다.
                                       또한 일반적으로 권한은 역할(role) 형태로 승인 된다.
5) 접근 제어(access control) : 애플리케이션 리소스에 대한 접근을 제어하는 것을 말한다.
                                           이 과정에는 사용자가 리소스에 접근 할 수 있도록 허용되는지 여부에 대한
                                           결정이 동반된다. 이러한 결정을 접근 제어 결정(access control decision)
                                           이라 하고, 이 결정은 리소스의 접근 속성과 사용자의 허용된 권한 
                                           또는 다른 특성들을 비교해 이뤄진다.

마지막으로 web상에서 사용 할 때 web.xml에 서플릿 필터를 사용한다. HTTP요청에 서플릿 필터를 적용해
보안을 처리 한다. 또한 web.xml(web deployment descriptor)에 DelegatingFilterProxy 인스턴스를
등록하는 과정이 필요하다.

자세한 내용은 두번째 시간에 code와 함께 알아보겠다^-^

요즘 들어 할 것이 너무나도 많다..하지만 머리만 아파 할 뿐 노력하지 않는 나를 보며..한마디 하자..
"정신 차리자!~ㅋㅋㅋㅋ"
블로그에 적다가 말은 포스팅 글귀들이 3개나 된다..다중 데이터소스..웹서비스 관련..등등..;
다 마무리해서 2월 안엔 다 포스팅 하자!!

다시 스프링 시큐리티로 돌아오면..이러한 인증, 권한, 접근 처리 등을 스프링시큐리티에서 제공 해준다는 것이다. 어떻게? 기존 스프링 프레임웍에서 처럼~~암호화 또한 md5나 sha1 등을 제공! 뭐..자바에서 제공 하는 것과 다른지 같은지는 아직 잘모르겠지만..^^;

참고자료 : 스프링3 레시피


저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바