[spring-boot] 블로그를 만들자. (8) GitHub login

이번시간에는 로그인을 해보자. 우리는 github로 로그인을 할텐데 페이스북이나 트위터도 비슷할 듯 하다. 우리는 인증서버는 github에 넘기고 리소스만 관리하며 된다. 일단 시큐리티 관련해서 디펜더시를 받자. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> </dependency> spring security는 그렇게 간단하지만은 않다. 그래도 Spring boot를 쓰면 기존에 어려웠던 설정들이 조금이나마 간단해 진 것을 알 수 있다. 위와 같이 디펜더시를 받았다면 yaml이나 properties 파일 설정을 해야 한다. security.oauth2.client.client-id=xxxxxxxxxxxxxxxxx security.oauth2.client.client-secret=xxxxxxxxxxxxxxxxxxxxx security.oauth2.client.access-token-uri=https://github.com/login/oauth/access_token security.oauth2.client.user-authorization-uri=https://github.com/login/oauth/authorize security.oauth2.client.client-authentication-scheme=form security.oauth2.resource.user-info-uri=https://api.github.com/user 위의 설정은 github의.. Read More

Spring Boot Method Security

오늘은 제목 그대로 Spring의 메서드로 권한을 체크해보자. 예를들어 어떤 메서드에 권한을 부여해 주는 것이다. 일단 테스트를 하기 위해 oauth2 서버도 아주 간단하게 테스트만 할 수 있을 정도로만 만들자. Spring boot 경우에는 쉽게 할 수 있다. 디펜더시부터 받자. <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 일단 시큐리티만 적었다. 웹과 기타 등등 나머지는 알아서 넣길.. @SpringBootApplication @EnableAuthorizationServer @EnableResourceServer @EnableGlobalMethodSecurity(prePostEnabled = true) public class SpringStudyApplication { public static void main(String[] args) {.. Read More

spring security 권한 관리

이번에 security의 동적 권한?에 대해 알아보자. 권한 관리를 정적으로 하지 않고 db에서 권한을 관리하는 거다. 예전에 시큐리티를 처음 했을때 낑낑거리던 그때가 생각난다. 시큐리티가 좋긴 하지만 어렵다. 아무튼 한번 보자. 물론 내가 틀릴 수도 있다. 대충 설계는 위와 같다.(hierarchy 구조는 일단 뺏다. 하드코딩) Authorities는 매핑 테이블이다. User와 role을 매핑 시킨다. 한 user가 여러개의 롤을 가질수 있으며 롤 역시 여러개의 유저에 할당 할 수 있다. RoleResouce도 마찬가지다. Resouces는 실제 url 정보를 가지고.. Read More