신속하게 구축 프로젝트에 봄 보안

기본 원리는 봄 보안 인터셉터 체인이다. 스프링 프로젝트를 빌드하는 주석 방법의 사용에 관한 기사에서,

절편에 사용자 정의 인터셉터가 제공 HandlerInterceptr 스프링 인터페이스를 구현 한 다음 세 가지 방법 인터셉터를 구현할 수 있으며,

prexxx 유효성 검사 논리에 정의 된 방법. 주사 후 잘 정의 인터셉터는 구성 클래스하는 ServletContext 컨테이너에 등록 온. 당신은 사용할 수 있습니다.

이 인증 및 권한 부여를 기반으로 세션의 방법입니다.

 

봄 보안은 우리에 대한 인증 및 권한 부여를위한 프레임 워크를 제공합니다. 빨리 봄 보안 프로젝트를 빌드하는 방법을 설명 아마 다음에.

1 받는다는 프로젝트를 만듭니다

의 따라 봄 보안과,이 치어 의존

    <의존성>

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

      <artifactId를> 스프링 보안 웹 </ artifactId를>

      <버전> 5.1.5.RELEASE </ 버전>

    </ 의존성>

    <의존성>

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

      <artifactId를> 스프링 보안 설정 </ artifactId를>

      <버전> 5.1.5.RELEASE </ 버전>

    </ 의존성>

3 개의 프로파일 스프링 컨테이너 등가 applicationContext.xml 하나를 생성하기 위해서, 최종 물품

   하나는하는 ServletContext 용기입니다. 때 springmvc.xml에는 등록 자신의 인터셉터가 없습니다.

(4) 스프링 식 용기

5 구성된 보안 구성을 정의

@EnableWebSecurity

공용 클래스 WebSecurityConfig는 WebSecurityConfigAdapetor를 {확장

  // 구성 사용자 정보 서비스

  @콩

  공공 UserDetailsService의 UserDetailsService의 () {

    InMemoryUserDetailManger 구유 새로운 InMemoryUserDetailManger을 () =;

    구유는 createUser (.. User.withUsername ( "zhangsan") 암호 ( "111") 기관 ( "A1", "A2") 빌드 ().));

    구유는 createUser (.. User.withUsername ( "리시") 암호 ( "222") 기관 ( "B1", "B2") 빌드 ().));

    구유를 반환;

  } 

  암호 인코더를 정의 //

  @콩

  공개되는 PasswordEncoder되는 PasswordEncoder () {

    창 noOpPasswordEncoder .getIntance ();

  } 

  보안 차단 메커니즘을 정의 //

  @콩

  보호 무효 구성은 (HttpSecurity HTTP) 예외 {던졌습니다

    http.authorizeRequests ()

    .antMatchers ( "/ R / **"). 인증 ()

    .anyRequest (). permitAll ()를

    .과()

    .formLogin ()

    .sucessFowardUrl ( "/ 로그인-성공");

  } 

}

도 6은 로딩로드 클래스에 배치

  배열 getRootConfigClasses 방법 플러스 클래스 구성.

7 초기화 봄 보안. 봄이 현재 사용하고 있기 때문에 환경, 그래서 아무 중복 코드

  당신이 봄 환경을 사용하지 않는 경우 WebSecurityConfig (봄 보안 구성 클래스) 부모 클래스를 통과하려면, 필요

  맞춤 얻기 위해, 스프링 컨텍스트를 만들 수 있습니다

공용 클래스 SpringSecurotyApplicationInitializer는 AbstractSecurityWebApplicationInitializer를 {확장

  공공 SpringSecurotyApplicationInitializer () {

    // 슈퍼 (WebSecurityConfig); //이 줄을 추가하는 봄 또는 springMvc 필요가없는 경우

  }

}

가서 우리 자신의 페이지로 이동하기 위해 필요 (인증 종료) 로그인 시간을 클릭하면 8, 당신은 로그인 주소는 내부 구성의 servletContext을 수정해야합니다 :

  

        우세하다

        공공 무효 addViewControlers (viewControllerRegistry 레지스트리) {

          registry.addViewController ( "/") setViewName ( "리디렉션 : / 로그인.");

        }

제어부 (9)에서 정의 된 요청 / 로그인 성공 -. 봄 보안 기본 종료 요청은 / 로그 아웃

10 테스트 

도 11은 구성 클래스 허가 구성으로 배치

    http.authorizeRequests ()

    .antMatchers ( "/ R / R1 '). hasAuthority ("A1 ")

    .antMatchers ( "/ R / R2"). hasAuthority ( "B1")

    .antMatchers ( "/ R / **"). 인증 ()

    .anyRequest (). permitAll ()를

    .과()

    .formLogin ()

    .sucessFowardUrl ( "/ 로그인-성공");

 

추천

출처www.cnblogs.com/dengw125792/p/12283901.html