본문 바로가기

SpringSecurity

SpringSecurity(보안기능구현)

반응형

현재 보안기능은 작동하지만 계정이 하나 밖에 없고 권한도 현재 시스템에는 추가되거나 변경되는게 없다

해커의 칩입해 대비 할수 있는 보안옵션이 없다.

지금 나의 보안시스템은 그냥 .. 최소한의 보안시스템?? 이다.ㅋㅋ

이제 개선 해나가보려고 한다!

 

WebSecurityConfigurarAdapter

이클래스는 핵심적인 클래스다 스프링 시큐리티에 웹보안의 기능을 초기화하고 설정하는 클래스이다.

의존성을 추가할때 스프링시큐리티가 보안기능이 활성화 하게끔 하는 클래스이다.

HttSecurity

이클래스는 세부적인 보안 기능을 설정할수 있는 api제공

두개의 클래스가 의존성을 추가 했을때 가장 기본적인 웹보안 기능을 추가하고 작동하게 하는 클래스이다.

자 이제 SecurityConfig를 만들어 볼예정이다

위에서 설명한 WebSecurityConfigurerAdapter를 상속받고

SecurityConfig 안에서 httpSecurity 를 사용해서 세부적으로 활용할수 있는 API 를 사용할 예정이다.

 

 

 

인텔리제이에서 command+o로

WebSecurityConfigurarAdapter 설정 클래스를 확인할수 있다

시큐리티가 활성화 하면서 HttpSecurity가 활성화 되고

여기서 11개의 API들을 호출하면서 설정 초기화 작업을 하는걸 확인할수 있다

HttpSecurity를 들어가보면 ExceptionHandlingConfigurer을 확인하면 Exception을 처리하는 클래스를 확인할수 있고

설을 확인하면

Filter도 생성하는걸 확인할수 있다 예외를 처리하는 인증 인가 발생했을때 예외처리 하는 필터를 생성하는걸 확인할수 있다.

정리하자면!!!

API가 설정을 호출하면서 초기화가 되고 설정클래스가 각각의 필터들을 생성한다 ! 이렇게 기억하면 될거 같다!

그리고 추가적으로 configure 요놈은! 추가적으로 설정을 해주는 친구이다

들어가서 확인을 하면

여기서 추가적인 설정을 확인할수 있고 현재 사용자가 http 방식으로 요청할때 보안검사(authorizeRequests)를 한다는 말이다. 어떠한 요청(anyRequest)에도

인증을(authenticated) 받도록 api를 설정한다 인증로그인 form login과 httpbasic 방법을 사용하겠다

이러한 설정때문에 시큐리티가 초기화 하면 루트 경로로 접속 할지라도 인증을 받지 않으면 폼로그인으로 로그인하도록 로그인페이지를 제공한다

자 그러면 이 클래스들을 상속받아서 보안기능을 구현할 예정이다

configure 메소드를 오버라읻 해서 재정의 할예정이다.

Securityconfig 클래스를 하나 만들어줬다

그리고 WebSecurityConfigurerAdapter 를 상속받고

어노테이션으로 설정클래스임을 알려준다 @Configuration

@EnableWebSecurity를 사용하는데

이 어노테이션은 WebSecurityConfigurarion 설정클래스와 여러 클래스 들을 임포트 해서 실행하는 어노테이션이다.

웹보안을 활성화 시켜주기 때문에 클래스 위에 무조건 명시를 해주자!!

자 그러면!! 나는 api인증과 인가 api를 설정을 해보려고 한다!

일단 메소드를 오버라이드 해보자!

 

단축기 control + o

아까 위에 서 확인한 configure를 오버라이드 받았고 확인했던 11가지 api중에서

보안 검사와 요청 인증을 명시 해줬다.

그리고 메번 랜덤 패스워드를 받아서 하기 귀찮고 음.. 그냥 귀찮타

그리고 퍼로퍼티를 통해서

apllicaiotn.properties

이름과 비빌번호를 명시 해줬다 그러면 로그에서 랜덤 패스워드는 안나오고 로컬 호스트로

명시해준 유저네임과 비밀번호를입력후 들어갈수 있다!

구동이 되면 저렇게 확인가능하다 모자이크된 부분은 비밀번호는 아니다 시큐리티를 구동하면 저렇게 확인이 가능한데

저게 무슨역활은 한건지는 잘모르겠다 그냥 시큐리티 접속 정보인건가??저건 다음에 하겠다..

 

 

필자는 이것을 기록하는 이유는 나처럼 국비지원을 받고 프로젝트를 수행 했던 사람들이 있을거다

너무 짧은 기간과 많은 양의 지식을 머리속에 담을수 없을거라고 생각한다... 나도 그랫다... 난 더더욱더..

지금 내가 기록하는건 강의를 들으면서 기억하기 위해 기록을 한다

이글이 나처럼 시큐리티를 시작하는 사람 혹은 나처럼 교육 이수를 했지만 모르는 사람들을 위해 같이 공유하고자 기록한다

한편으로는 지금 취업을 준비하는과정이다 보니 경쟁장가....많이 늘겠지?... 라는...

어처구니 없는 생각도 하게된다.

 

 

 

 

 

 

 

반응형

'SpringSecurity' 카테고리의 다른 글

SpringSecurity(RemeberMe)  (0) 2020.10.30
SpringSecurity(Logout),LogoutFilter  (0) 2020.10.30
SpringSecurity(LoginForm)인증  (0) 2020.10.30
SpringSecurity(시작!)  (0) 2020.10.30
SpringSecurity(FormLogin)  (0) 2020.10.30