티스토리 툴바


분류없음2011/05/07 17:41
스프링 페스티발

저작자 표시 비영리
Posted by 사랑해사랑해
Software Architecture2010/01/25 10:52

프로젝트 비전 제시

핵심기술에 대한 조언 제시

중요한 사안에 대한 의사결정

수립된 아키텍처에 대한 코칭

대립 해소의 조정자

소프트웨어 구현(RI)

아키텍처의 중요성에 대한 대변자

1.    Creating Vision

2.    The Architect as a Key Technical Consultant

3.    The Architect Makes Decisions

4.    The Architect Coaches

5.    The Architect Coordinates

6.    The Architect Implements

7.    The Architect Advocates


http://www.swarchitect.org/zbxe/swa_ent_2/3385


Applied Software Architecture, Christine Hofmeister, Robert Nord, and Dilip Soni 1999. Addison Wesley.
저작자 표시 비영리
Posted by 사랑해사랑해
Spring2010/01/21 13:11

Spring Security LDAP 샘플을 함 만들어보았습니다.

우선 LDAP ContextSource 설정

<bean id="contextSource"
  class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
  <constructor-arg
   value="${urls}" />
  <property name="userDn" value="${userDn}" />
  <property name="password" value="${password}" />
 </bean>

urls=ldap://xxx.xxx.xxx.xxx:389/DC=springspirit,dc=net?sAMAccountName?sub?(objectClass=*)
userDn=cn=epadmin,cn=Users,dc=springspirit,dc=net
password=springspirit
base=dc=springspirit,dc=net

그다음엔, LDAP Provider 설정

UserSearch 0번 argument에 Organization Unit (여기서는 ou=SPRINGSPIRITUSER) 설정과
Authorities에 해당하는 DefaultLdapAuthoriesPopulator의 argument에 OU 설정하는 것에 주의합니다.

참고로 rolePrefix 속성은 LDAP에서 사용중인 그룹이 ROLE_ 로 시작되지 않을 경우 Prefix를 붙여주므로
LDAP group naming 정의할 때, 고려해둡니다.

<bean id="secondLdapProvider"
  class="org.springframework.security.providers.ldap.LdapAuthenticationProvider">
  <sec:custom-authentication-provider />
  <constructor-arg>
   <bean
    class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator">
    <constructor-arg ref="contextSource" />
    <property name="userSearch">
     <bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
      <constructor-arg index="0" value="ou=SPRINGSPIRITUSER" />
      <constructor-arg index="1" value="(&amp;(cn={0})(objectClass=User))" />
      <constructor-arg index="2" ref="contextSource" />
      <property name="searchSubtree" value="true" />
     </bean>
    </property>
   </bean>
  </constructor-arg>
  <constructor-arg>
   <bean class="org.springframework.security.ldap.populator.DefaultLdapAuthoritiesPopulator">
         <constructor-arg ref="contextSource"/>
         
<constructor-arg value="ou=SPRINGSPIRITUSERGROUP"/>
         <property name="rolePrefix" value="" />
      </bean>
  </constructor-arg>
</bean>

마지막으로 <http> 설정을 합니다.

<sec:http>
  <sec:intercept-url pattern="/login.jsp" filters="none" />
  <sec:intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
  <sec:intercept-url pattern="/main" access="ROLE_USER,ROLE_ADMIN" />
  <sec:intercept-url pattern="/user/**" access="ROLE_USER,ROLE_ADMIN" />
  <sec:form-login login-page='/login.jsp' default-target-url='/main' always-use-default-target='true' />
  <sec:anonymous />
  <sec:logout />
 </sec:http>
저작자 표시 비영리
Posted by 사랑해사랑해