은근한

Spring boot security Login 본문

카테고리 없음

Spring boot security Login

EsJoo 2017. 8. 18. 20:36

Security 의 기본 설정인 websecurityconfigureradapter 관한 내용은 아래의 페이지를 참고하면 된다.


https://spring.io/guides/gs/securing-web/


Interface UserDetails

Interface UserDetailsService

* 클릭시 링크 이동


위의 두 인터페이스를 사용해서 로그인을 만들어 보려고 한다. 


UserDetails 는 구현은 보안 목적으로 스프링 보안에 의해 직접적으로 사용되지 않는다. 


단순히 인증 객체로 캡슐화 된 사용자 정보를 저장한다.


오버라이드 되는 메서드들

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return authorities;
}

@Override
public String getPassword() {
return password;
}

@Override
public String getUsername() {
return username;
}

@Override
public boolean isAccountNonExpired() {
return isAccountNonExpired;
}

@Override
public boolean isAccountNonLocked() {
return isAccountNonLocked;
}

@Override
public boolean isCredentialsNonExpired() {
return isCredentialsNonExpired;
}

@Override
public boolean isEnabled() {
return isEnabled;
}

 

UserDetailsService 는 사용자 특정 데이터를 가져올 수 있으며, 데이터를 가공하는 구현을 하는 Service에 주로 사용이 된다.


loadUserByUsername 메서드를 오버라이드 하는데


사용자 식별을 email로 하기위해 email로 변경해서 만들었다.

@Override
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
User user = userMapper.readUser(email);
user.setAuthorities(getAuthorities(user.getId()));

return user;
}


로그인을 만들기 위한 내용이 생각보다 길기에 우선 정리삼아 포스팅을 하는 것이고..


완성되면 하나씩 상세히 포스팅을 따로 할 예정이다. 


public class WebSecurityConfig extends WebSecurityConfigurerAdapter

위의 시큐리티 설정이 끝나면 WebSecurityConfigurerAdapter 클래스에 해당하는 


protected void configure(HttpSecurity http) throws Exception
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception

이 두 메서드에 대해서 설정을 해줘야한다. 이에 관한 내용은 깃에 정리 되어 있다.


깃 주소는 https://github.com/liquidjoo/ryoko