JSP 개발 의 Spring Security 상세 설명

7702 단어 SpringSecurity
JSP 개발 의 Spring Security 상세 설명
선언:
spring Security 는 Spring 기반 기업 응용 시스템 에 설명 적 안전 액세스 제어 솔 루 션 을 제공 할 수 있 는 안전 프레임 워 크 입 니 다.이 는 Spring 응용 컨 텍스트 에 설정 할 수 있 는 Bean 을 제공 합 니 다.Spring IoC(주입 의존,반전 제어)와 AOP(절단면 프로 그래 밍)기능 을 충분히 이용 하여 응용 시스템 에 성명 식 보안 접근 제어 기능 을 제공 하여 기업 시스템 보안 제어 에 중복 코드 를 많이 만 드 는 작업 을 줄 였 습 니 다.
Spring Security 의 전신 은 Acegi Security 로 Spring 프로젝트 팀 에서 안전 인증 서 비 스 를 제공 하 는 프레임 워 크 입 니 다.Spring Security 는 J2EE 기업 애플 리 케 이 션 을 바탕 으로 전면적 인 안전 서 비 스 를 제공 했다.특히 선도 적 인 J2EE 솔 루 션 인 스프링 프레임 워 크 를 사용 해 개발 한 기업 소프트웨어 프로젝트.
기능.
Spring Security 는 웹 보안 에 대한 지원 을 Servlet 필터 에 대량으로 의존 합 니 다.이 필터 들 은 요청 을 차단 하고 프로그램 이 이 요청 을 처리 하기 전에 보안 처 리 를 합 니 다.Spring Security 는 몇 개의 필 터 를 제공 합 니 다.Servlet 요청 을 차단 하고 이 요청 을 인증 과 방문 결정 관리자 에 게 전달 하여 안전성 을 강화 할 수 있 습 니 다.자신의 필요 에 따라 표 7.4 에 열 거 된 필 터 를 사용 하여 프로그램 을 보호 할 수 있 습 니 다.
Servlet 필 터 를 사용 한 적 이 있다 면 웹 프로그램의 웹.xml 파일 에서요 소 를 사용 하여 설정 해 야 합 니 다.이렇게 하면 효과 가 있 지만 주입 에 의존 하 는 설정 은 적용 되 지 않 습 니 다.  
FilterToBean Proxy 는 특수 한 Servlet 필터 입 니 다.그 자체 가 하 는 일이 많 지 않 고 Spring 응용 프로그램의 컨 텍스트 에 있 는 Bean 에 게 자신의 일 을 맡 깁 니 다.위 탁 된 Bean 은 거의 다른 Servlet 필터 와 마찬가지 로 javax.servlet.Filter 인 터 페 이 스 를 실현 하지만,웹.xml 파일 이 아 닌 Spring 프로필 에 설정 되 어 있 습 니 다.  
실제로 FilterToBean Proxy 가 대리 해 준 그 Bean 은 javax.servlet.Filter 의 임 의적 인 실현 이 될 수 있 습 니 다.이것 은 Spring Security 의 모든 필터 일 수도 있 고,스스로 만 든 필터 일 수도 있 습 니 다.그러나 이 책 에서 언급 한 바 와 같이 Spring Security 는 최소 4 개 이상 의 필 터 를 설정 해 야 합 니 다.
많은 프로젝트 에서 응용 과 지역사회 의 기 여 를 실천 함으로써 현재 의 Spring Security 는 Spring Framework 에서 가장 성숙 한 안전 시스템 이 되 었 고 우리 에 게 강력 하고 유연 한 기업 급 안전 서 비 스 를 제공 했다.예 를 들 어:
  •              인증 권한 수여 메커니즘
  •              웹 자원 접근 제어
  •              업무 방법 호출 액세스 제어
  •             영역 대상 액세스 제어 액세스 제어 목록(ACL)
  •             단일 로그 인(중앙 인증 서비스)
  •             X509 인증
  •             채널 보안(채널 보안)관리 등 기능
  • 간단 한 예
    1.웹 프로젝트 springSecurity 3 생 성
    2.spring 사이트 에서 다운로드 한 spring-security-3.1.0.RELEASE 를 압축 해제 하고 그 중의 spring-security-samples-constacts-3.1.0.RELEASE.war 를 압축 해제 하여 jar 가방 을 lib 디 렉 터 리 에 넣 습 니 다.
    3.설정 웹.xml 을 다음 과 같이 수정 합 니 다.
    
    <?xml version="1.0" encoding="UTF-8"?> 
    <web-app version="2.5"  
      xmlns="http://java.sun.com/xml/ns/javaee"  
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
       
      <!--  Spring XML     --> 
      <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value> 
          classpath:securityConfig.xml       
        </param-value> 
      </context-param> 
       
      <!-- Spring Secutiry3.1        --> 
      <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> 
       
      <!-- Spring         --> 
      <listener> 
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
      </listener> 
       
       
     <welcome-file-list> 
      <welcome-file>index.jsp</welcome-file> 
     </welcome-file-list> 
    </web-app> 
    
    4.src 아래 에 security Config.xml 파일 을 만 드 는 내용 은 다음 과 같 습 니 다.
    
    <?xml version="1.0" encoding="UTF-8"?> 
    <b:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:b="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.0.xsd 
                http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 
     
      <!--        --> 
    <http pattern="/login.jsp" security="none"/> 
    <http access-denied-page="/accessDenied.jsp"> 
      <form-login login-page="/login.jsp"/> 
      <!--  /admin.jsp         ROLE_ADMIN    --> 
      <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/> 
      <!--  /**         ROLE_USER    --> 
    <intercept-url pattern="/**" access="ROLE_USER"/> 
    <session-management> 
      <concurrency-control max-sessions="1" error-if-maximum-exceeded="false"/> 
    </session-management> 
    </http> 
    <authentication-manager> 
    <authentication-provider> 
      <user-service> 
        <user name="john" password="john" authorities="ROLE_USER" /> 
        <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />                 <user name="guest" password="guest" authorities="ROLE_GUEST" />  
      </user-service> 
    </authentication-provider> 
    </authentication-manager> 
    </b:beans> 
    
    
    5.WebRoot 에서 login.jsp 를 만 드 는 내용 은 다음 과 같 습 니 다.
    
    <body> 
      <form action="j_spring_security_check" method="POST"> 
        <table> 
          <tr> 
            <td>  :</td> 
            <td><input type='text'name='j_username'></td> 
          </tr> 
          <tr> 
            <td>  :</td> 
            <td><input type='password'name='j_password'></td> 
          </tr> 
          <tr> 
            <td><input name="reset"type="reset"></td> 
            <td><input name="submit"type="submit"></td> 
          </tr> 
        </table> 
      </form> 
    </body> 
    
    6.WebRoot 에서 accessDenied.jsp 를 만 들 고,
    
    <body> 
            ,       !<br> 
    </body> 
    
    
      admin.jsp 를 만 드 는 내용 은 다음 과 같 습 니 다.
    
    <body> 
             . <br> 
    </body> 
     index.jsp 내용 을 다음 과 같이 수정 합 니 다.
    
    <body> 
            ,  <sec:authentication property="name"/>!<br> 
      <a href="admin.jsp" rel="external nofollow" >  admin  </a> 
      <a href="other.jsp" rel="external nofollow" >      </a> 
     
     </body>
    자,프로젝트 를 배치 하고 index.jsp 에 접근 합 니 다.
    아 이 디 는 방금 배 치 된 그 아 이 디 입 니 다.뭐?까 먹 었 어.그래,내 가 다시 지적 해 줄 게.
    
    <user name="john" password="john" authorities="ROLE_USER" />
     <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" /> 
    
    접근 권한 이 다른 페이지 는 다 릅 니 다.해 보 셔 도 돼 요. 
    이상 은 JSP 개발 에서 Spring Security 의 사례 에 대한 상세 한 설명 입 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 의 커 뮤 니 티 에 가서 토론 하 십시오.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기