Spring Boot + Spring Security ~ 샘플 앱 구현 ~
Spring Security 정보
Spring Security는 강력한 액세스 제어 프레임워크입니다. 이렇게 하면 Spring 기반 애플리케이션을 보호할 수 있습니다.
Spring Security의 특징은 사용자 정의 요구 사항에 맞게 쉽게 확장할 수 있다는 점입니다. 예를 들어, 인증 체계를 변경하고 특정 경로를 액세스 제어하고 쉽게 할 수 있습니다.
보안 기능으로 표준 로그인 화면도 제공됩니다. 여기에서는 표준 로그인 화면을 확인합니다.
개발 환경
샘플 어플리케이션의 작성은, 아래와 같은 환경에 Spring Tool Suite (STS) 배포 가 완료되고 있는 것을 전제로 합니다.
종류
제품
JVM
자바 11
OS
Windows 10 64비트
샘플 애플리케이션 만들기
1. 신규 프로젝트 작성
Spring Tool Suite (STS) 메뉴에서 파일 -> 새로 만들기 -> Spring Starter Project를 선택하십시오.
New Spring Starter Project 대화 상자에서 다음을 입력하고 Next 버튼을 누릅니다.
- 이름 : spring-security1
- Java 버전: 11
종속성으로 아래에 체크를 하고 마침 버튼을 누릅니다.
▼개발 툴
· Spring Boot DevTools
・Lombok
▼보안
· Spring Security
▼템플릿 엔진
・Thymeleaf
▼Web
· Spring Web
2. 보안 만들기
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.config (config 추가)
- 이름: SecurityConfig
SecurityConfig.java를 다음과 같이 편집합니다.
SecurityConfig.javapackage com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public BCryptPasswordEncoder passwordEncoder() {
// パスワードの暗号化用に、bcrypt(ビー・クリプト)を使用します
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 認証リクエストの設定
.authorizeRequests()
// 認証の必要があるように設定
.anyRequest().authenticated()
.and()
// フォームベース認証の設定
.formLogin();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
// メモリ内認証を設定
.inMemoryAuthentication()
// "user"を追加
.withUser("user")
// "password"をBCryptで暗号化
.password(passwordEncoder().encode("password"))
// 権限(ロール)を設定
.authorities("ROLE_USER");
}
}
참고 정보セキュリティを設定する場合、WebSecurityConfigurerAdapter を継承してクラスを作成します。クラスには、@Configuration と @EnableWebSecurityアノテーションを付けます。
@EnableWebSecurity・・・Spring Securityの機能を有効にします。
セキュリティの設定は、configure(http)とconfigure(auth)メソッドに記載します。これらの違いは、configure(http)がhttpリクエストの設定で、configure(auth)がユーザの設定です。
3. 컨트롤러 작성
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.controller (controller 추가)
- 이름: SecurityController
SecurityController.java를 다음과 같이 편집합니다.
SecurityController.javapackage com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class SecurityController {
@GetMapping("/")
public String success() {
return "success";
}
}
4. Thymeleaf 템플릿 만들기
템플릿에서 마우스 오른쪽 버튼을 클릭 -> 새로 만들기 -> 기타를 선택합니다.
새로 만들기 대화상자에서 웹 -> HTML 파일을 선택하고 다음 버튼을 누릅니다.
새 HTML 파일 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 파일 이름: success.html
list.html을 다음과 같이 편집합니다.
list.html<!DOCTYPE html>
<html xmlns:th="www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>ログイン成功</h2>
<a th:href="@{/logout}">ログアウトの確認メッセージへ</a><br>
<br>
<form th:action="@{/logout}" method="post">
<button>ログアウトする</button>
</form>
</body>
</html>
SpringSecurity1Application에서 마우스 오른쪽 버튼 클릭 -> 실행 -> Spring Boot 응용 프로그램을 선택합니다.
콘솔에서 시작을 확인한 후 브라우저에서 http://localhost-8080.com/에 액세스합니다.
표시된 화면에서 사용자 이름 "user"와 암호 "password"를 입력하면 로그인 할 수 있습니다.
참고서적
「Spring Boot 2.3 입문: 기초부터 실연까지」(전자 서적)
Reference
이 문제에 관하여(Spring Boot + Spring Security ~ 샘플 앱 구현 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-shin0hara/items/5dc7579550296bbaf9f4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
샘플 어플리케이션의 작성은, 아래와 같은 환경에 Spring Tool Suite (STS) 배포 가 완료되고 있는 것을 전제로 합니다.
종류
제품
JVM
자바 11
OS
Windows 10 64비트
샘플 애플리케이션 만들기
1. 신규 프로젝트 작성
Spring Tool Suite (STS) 메뉴에서 파일 -> 새로 만들기 -> Spring Starter Project를 선택하십시오.
New Spring Starter Project 대화 상자에서 다음을 입력하고 Next 버튼을 누릅니다.
- 이름 : spring-security1
- Java 버전: 11
종속성으로 아래에 체크를 하고 마침 버튼을 누릅니다.
▼개발 툴
· Spring Boot DevTools
・Lombok
▼보안
· Spring Security
▼템플릿 엔진
・Thymeleaf
▼Web
· Spring Web
2. 보안 만들기
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.config (config 추가)
- 이름: SecurityConfig
SecurityConfig.java를 다음과 같이 편집합니다.
SecurityConfig.javapackage com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public BCryptPasswordEncoder passwordEncoder() {
// パスワードの暗号化用に、bcrypt(ビー・クリプト)を使用します
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 認証リクエストの設定
.authorizeRequests()
// 認証の必要があるように設定
.anyRequest().authenticated()
.and()
// フォームベース認証の設定
.formLogin();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
// メモリ内認証を設定
.inMemoryAuthentication()
// "user"を追加
.withUser("user")
// "password"をBCryptで暗号化
.password(passwordEncoder().encode("password"))
// 権限(ロール)を設定
.authorities("ROLE_USER");
}
}
참고 정보セキュリティを設定する場合、WebSecurityConfigurerAdapter を継承してクラスを作成します。クラスには、@Configuration と @EnableWebSecurityアノテーションを付けます。
@EnableWebSecurity・・・Spring Securityの機能を有効にします。
セキュリティの設定は、configure(http)とconfigure(auth)メソッドに記載します。これらの違いは、configure(http)がhttpリクエストの設定で、configure(auth)がユーザの設定です。
3. 컨트롤러 작성
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.controller (controller 추가)
- 이름: SecurityController
SecurityController.java를 다음과 같이 편집합니다.
SecurityController.javapackage com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class SecurityController {
@GetMapping("/")
public String success() {
return "success";
}
}
4. Thymeleaf 템플릿 만들기
템플릿에서 마우스 오른쪽 버튼을 클릭 -> 새로 만들기 -> 기타를 선택합니다.
새로 만들기 대화상자에서 웹 -> HTML 파일을 선택하고 다음 버튼을 누릅니다.
새 HTML 파일 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 파일 이름: success.html
list.html을 다음과 같이 편집합니다.
list.html<!DOCTYPE html>
<html xmlns:th="www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>ログイン成功</h2>
<a th:href="@{/logout}">ログアウトの確認メッセージへ</a><br>
<br>
<form th:action="@{/logout}" method="post">
<button>ログアウトする</button>
</form>
</body>
</html>
SpringSecurity1Application에서 마우스 오른쪽 버튼 클릭 -> 실행 -> Spring Boot 응용 프로그램을 선택합니다.
콘솔에서 시작을 확인한 후 브라우저에서 http://localhost-8080.com/에 액세스합니다.
표시된 화면에서 사용자 이름 "user"와 암호 "password"를 입력하면 로그인 할 수 있습니다.
참고서적
「Spring Boot 2.3 입문: 기초부터 실연까지」(전자 서적)
Reference
이 문제에 관하여(Spring Boot + Spring Security ~ 샘플 앱 구현 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-shin0hara/items/5dc7579550296bbaf9f4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Spring Tool Suite (STS) 메뉴에서 파일 -> 새로 만들기 -> Spring Starter Project를 선택하십시오.
New Spring Starter Project 대화 상자에서 다음을 입력하고 Next 버튼을 누릅니다.
- 이름 : spring-security1
- Java 버전: 11
종속성으로 아래에 체크를 하고 마침 버튼을 누릅니다.
▼개발 툴
· Spring Boot DevTools
・Lombok
▼보안
· Spring Security
▼템플릿 엔진
・Thymeleaf
▼Web
· Spring Web
2. 보안 만들기
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.config (config 추가)
- 이름: SecurityConfig
SecurityConfig.java를 다음과 같이 편집합니다.
SecurityConfig.javapackage com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public BCryptPasswordEncoder passwordEncoder() {
// パスワードの暗号化用に、bcrypt(ビー・クリプト)を使用します
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 認証リクエストの設定
.authorizeRequests()
// 認証の必要があるように設定
.anyRequest().authenticated()
.and()
// フォームベース認証の設定
.formLogin();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
// メモリ内認証を設定
.inMemoryAuthentication()
// "user"を追加
.withUser("user")
// "password"をBCryptで暗号化
.password(passwordEncoder().encode("password"))
// 権限(ロール)を設定
.authorities("ROLE_USER");
}
}
참고 정보セキュリティを設定する場合、WebSecurityConfigurerAdapter を継承してクラスを作成します。クラスには、@Configuration と @EnableWebSecurityアノテーションを付けます。
@EnableWebSecurity・・・Spring Securityの機能を有効にします。
セキュリティの設定は、configure(http)とconfigure(auth)メソッドに記載します。これらの違いは、configure(http)がhttpリクエストの設定で、configure(auth)がユーザの設定です。
3. 컨트롤러 작성
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.controller (controller 추가)
- 이름: SecurityController
SecurityController.java를 다음과 같이 편집합니다.
SecurityController.javapackage com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class SecurityController {
@GetMapping("/")
public String success() {
return "success";
}
}
4. Thymeleaf 템플릿 만들기
템플릿에서 마우스 오른쪽 버튼을 클릭 -> 새로 만들기 -> 기타를 선택합니다.
새로 만들기 대화상자에서 웹 -> HTML 파일을 선택하고 다음 버튼을 누릅니다.
새 HTML 파일 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 파일 이름: success.html
list.html을 다음과 같이 편집합니다.
list.html<!DOCTYPE html>
<html xmlns:th="www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>ログイン成功</h2>
<a th:href="@{/logout}">ログアウトの確認メッセージへ</a><br>
<br>
<form th:action="@{/logout}" method="post">
<button>ログアウトする</button>
</form>
</body>
</html>
SpringSecurity1Application에서 마우스 오른쪽 버튼 클릭 -> 실행 -> Spring Boot 응용 프로그램을 선택합니다.
콘솔에서 시작을 확인한 후 브라우저에서 http://localhost-8080.com/에 액세스합니다.
표시된 화면에서 사용자 이름 "user"와 암호 "password"를 입력하면 로그인 할 수 있습니다.
참고서적
「Spring Boot 2.3 입문: 기초부터 실연까지」(전자 서적)
Reference
이 문제에 관하여(Spring Boot + Spring Security ~ 샘플 앱 구현 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-shin0hara/items/5dc7579550296bbaf9f4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public BCryptPasswordEncoder passwordEncoder() {
// パスワードの暗号化用に、bcrypt(ビー・クリプト)を使用します
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 認証リクエストの設定
.authorizeRequests()
// 認証の必要があるように設定
.anyRequest().authenticated()
.and()
// フォームベース認証の設定
.formLogin();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
// メモリ内認証を設定
.inMemoryAuthentication()
// "user"を追加
.withUser("user")
// "password"をBCryptで暗号化
.password(passwordEncoder().encode("password"))
// 権限(ロール)を設定
.authorities("ROLE_USER");
}
}
セキュリティを設定する場合、WebSecurityConfigurerAdapter を継承してクラスを作成します。クラスには、@Configuration と @EnableWebSecurityアノテーションを付けます。
@EnableWebSecurity・・・Spring Securityの機能を有効にします。
セキュリティの設定は、configure(http)とconfigure(auth)メソッドに記載します。これらの違いは、configure(http)がhttpリクエストの設定で、configure(auth)がユーザの設定です。
[com.example.demo]에서 오른쪽 클릭 -> 새로 만들기 -> 클래스를 선택합니다.
새 Java 클래스 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 패키지 : com.example.demo.controller (controller 추가)
- 이름: SecurityController
SecurityController.java를 다음과 같이 편집합니다.
SecurityController.java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class SecurityController {
@GetMapping("/")
public String success() {
return "success";
}
}
4. Thymeleaf 템플릿 만들기
템플릿에서 마우스 오른쪽 버튼을 클릭 -> 새로 만들기 -> 기타를 선택합니다.
새로 만들기 대화상자에서 웹 -> HTML 파일을 선택하고 다음 버튼을 누릅니다.
새 HTML 파일 대화 상자에서 다음을 입력하고 마침 버튼을 누릅니다.
- 파일 이름: success.html
list.html을 다음과 같이 편집합니다.
list.html<!DOCTYPE html>
<html xmlns:th="www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>ログイン成功</h2>
<a th:href="@{/logout}">ログアウトの確認メッセージへ</a><br>
<br>
<form th:action="@{/logout}" method="post">
<button>ログアウトする</button>
</form>
</body>
</html>
SpringSecurity1Application에서 마우스 오른쪽 버튼 클릭 -> 실행 -> Spring Boot 응용 프로그램을 선택합니다.
콘솔에서 시작을 확인한 후 브라우저에서 http://localhost-8080.com/에 액세스합니다.
표시된 화면에서 사용자 이름 "user"와 암호 "password"를 입력하면 로그인 할 수 있습니다.
참고서적
「Spring Boot 2.3 입문: 기초부터 실연까지」(전자 서적)
Reference
이 문제에 관하여(Spring Boot + Spring Security ~ 샘플 앱 구현 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-shin0hara/items/5dc7579550296bbaf9f4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<!DOCTYPE html>
<html xmlns:th="www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>ログイン成功</h2>
<a th:href="@{/logout}">ログアウトの確認メッセージへ</a><br>
<br>
<form th:action="@{/logout}" method="post">
<button>ログアウトする</button>
</form>
</body>
</html>
Reference
이 문제에 관하여(Spring Boot + Spring Security ~ 샘플 앱 구현 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t-shin0hara/items/5dc7579550296bbaf9f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)