스프링 시큐리티

5211 단어 springjavasecurity
많은 인증 메커니즘(기본, 다이제스트, 양식, X.509 등)이 있으며 자격 증명 및 권한 정보(메모리 내, 데이터베이스, LDAP 등)에 대한 많은 저장 옵션이 있습니다. 권한 부여는 인증에 따라 달라지며 필요한 권한이 있는지 여부를 결정합니다. 결정 프로세스는 종종 역할(예: ADMIN, MEMBER, GUEST 등)을 기반으로 합니다.

웹 환경에서 Spring Security를 ​​설정하고 구성하는 세 단계가 있습니다.
  • 필터 체인 설정: 구현은 Spring 구성 필터 체인입니다(Spring Boot는 자동으로 수행).
  • 보안(권한 부여) 규칙 구성
  • 웹 인증 설정

  • 다음 예에서는 mvcMatchers를 사용하는 URL에 대한 특정 권한 부여 제한으로 정의됩니다.

    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.formLogin().loginPage("/login").permitAll().and().exceptionHandling().accessDeniedPage("/denied").and()
                    .authorizeRequests().mvcMatchers("/accounts/resources/**").permitAll().mvcMatchers("/accounts/edit*")
                    .hasRole("EDITOR").mvcMatchers("/accounts/account*").hasAnyRole("VIEWER", "EDITOR")
                    .mvcMatchers("/accounts/**").authenticated().and().logout().permitAll().logoutSuccessUrl("/");
        }
    
        @Autowired
        public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().passwordEncoder(new StandardPasswordEncoder()).withUser("viewerUser")
                    .password("abc").roles("VIEWER").and().withUser("editorUser").password("abc").roles("EDITOR");
        }
    
    }
    


    보시다시피 (and() 메서드를 사용하여) 여러 제한을 연결할 수 있습니다. 첫 번째 방법은 양식 기반 인증을 설정하는 것입니다. 두 번째 방법은 UserDetailsManagerConfigurer를 사용합니다. inMemoryAuthentication() 대신 jdbcAuthentication()을 사용할 수 있습니다.

    Spring Security ReferenceSecurity Architecture with Spring에서 자세히 알아보십시오.

    좋은 웹페이지 즐겨찾기