[Spring Security]

스프링 잠금

Spring Security는 Spring 기반 애플리케이션에서 인증 및 권한 부여를 담당하는 프레임워크입니다.

Spring Security를 ​​사용하면 다양한 인증 방법을 사용하여 보안을 강화할 수 있으며 세분화된 권한 제어를 통해 안전한 웹 애플리케이션을 개발할 수 있습니다.

Spring Security는 Spring Framework와 연동하여 사용할 수 있으며 다양한 인증 방식과 권한 제어 기능을 제공합니다.

Spring Security는 Spring 기반 웹 애플리케이션에 필수적인 매우 강력하고 유연한 보안 프레임워크입니다.

Spring Security로 인증 및 권한 부여 기능을 쉽게 구현할 수 있으며, 필요에 따라 세부 설정을 통해 보다 정교한 보안 기능을 구현할 수 있습니다.

Spring Security는 다음과 같은 다양한 보안 기능을 제공합니다.

B. 사용자 인증, 권한 부여, 보안 설정 및 보안 코딩 정책. Spring Security를 ​​통해 웹 애플리케이션에 나타날 수 있는 다양한 보안 위협을 예방하고 대응하여 안전한 웹 애플리케이션을 개발할 수 있습니다.


Spring Boot에서 먼저 Spring Security를 ​​사용하려면 spring-boot-starter-security 종속성을 추가해야 합니다.

implementation 'org.springframework.boot:spring-boot-starter-security'

그리고 보안 설정 클래스를 생성하여 원하는 설정을 구현할 수 있습니다.

@Configuration
public class SecurityConfig {

    @Autowired
    private PrincipalDetailService principalDetailService;

    @Bean
    public BCryptPasswordEncoder encodePWD(){
        return new BCryptPasswordEncoder();
    }

    protected void configure(AuthenticationManagerBuilder auth) throws Exception{
        auth.userDetailsService(principalDetailService).passwordEncoder(encodePWD());
    }

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
        http.csrf().disable()

                .authorizeRequests()
                    .antMatchers("/", "/auth/**", "/js/**", "/css/**", "/image/**")
                    .permitAll()
                    .anyRequest()
                    .authenticated()

                .and()
                    .formLogin()
                    .loginPage("/auth/loginForm")
                    .loginProcessingUrl("/auth/loginProc")
                    .defaultSuccessUrl("/");

        return http.build();
    }

SecurityFilterChain필요한 권한을 설정합니다.

위의 예에서 모든 사용자는 "/", "/auth/**", "/js/**", "/css/**", "/image/**" Spring Security 기반 로그인에 대한 액세스를 허용합니다.

"/auth/loginForm" 그대로 놔두세요. 가입 양식의 작업 URL은 다음과 같습니다.

"/auth/loginProc" 방법이 됩니다.


Spring Security 종속성을 추가하고 서버를 다시 시작하면 로그인 페이지로 이동합니다.


사용자 이름은 기본적으로 사용자입니다.

서버 콘솔 창에서 비밀번호를 확인할 수 있습니다.


Using generated security password: a4b1274f-6c80-4dff-bd08-bc9dccf06617

세션은 입력하는 순간부터 자동으로 생성됩니다.

<html xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/extras/spring-security">

<div>
    <!
--ROLE_USER 권한을 갖는다면 이 글이 보임--> <h1 sec:authorize="hasRole('ADMIN')">Has admin Role</h1> <!
--ROLE_ADMIN 권한을 갖는다면 이 글이 보임--> <h1 sec:authorize="hasRole('USER')">Has user Role</h1> <div sec:authorize="isAuthenticated()"> Only Authenticated user can see this Text </div> <!
--인증시 사용된 객체에 대한 정보--> <b>Authenticated DTO:</b> <div sec:authentication="principal"></div> <!
--인증시 사용된 객체의 Username (ID)--> <b>Authenticated username:</b> <div sec:authentication="name"></div> <!
--객체의 권한--> <b>Authenticated user role:</b> <div sec:authentication="principal.authorities"></div> </div>

타임리프 + 스프링 시큐리티

Thymeleaf + Spring Security – Thymeleaf 통합 기초

Thymeleaf + Spring Security – Thymeleaf 통합 기초

Thymeleaf로 전환했지만 로그인 및 오류 페이지가 여전히 JSP를 사용하고 있습니까? 이 기사에서는 로그인 및 오류 페이지에 Thymeleaf를 사용하도록 Spring 애플리케이션을 구성하는 방법을 배웁니다.

여기에 표시된 모든 코드는 작동 중인 애플리케이션에서 가져온 것입니다.

www.thymeleaf.org