inblog logo
|
devleekangho
    스프링부트

    [스프링 부트] 28. 시큐리티로 권한 설정 - 웹 게시판 v5

    KangHo Lee's avatar
    KangHo Lee
    Nov 28, 2024
    [스프링 부트] 28. 시큐리티로 권한 설정  - 웹 게시판 v5
    Contents
    User Entity

    User Entity

    User.java
    // User 엔티티 필드 @Column(nullable = false, columnDefinition = "varchar(255) default 'ROLE_USER'") private String role;
    • User 클래스에서 role 필드가 필요합니다.
    • 컬럼값은 ROLE_ADMIN, ROLE_MANAGER과 같이 ROLE_을 붙여야 합니다.
    • 회원가입 시 기본값은 ROLE_USER로 설정합니다.
    @Override public Collection<? extends GrantedAuthority> getAuthorities() { return List.of(); }
    • 권한을 추가하는 메서드로 유저가 권한을 여러 개 가질 수 있으므로 List로 반환합니다.
    // 시큐리티 필터 설정 http.authorizeHttpRequests(r -> r.requestMatchers("/s/**").hasAnyRole("USER", "ADMIN") .requestMatchers("/admin/**").hasAnyRole("ADMIN") .anyRequest().permitAll()) .formLogin(f -> f.loginPage("/login-form") .loginProcessingUrl("/login") .defaultSuccessUrl("/"));
    • 권한에 따라 접근 가능한 URL 설정
      • /s/로 시작하는 URL은 USER와 ADMIN 권한을 가진 유저만 들어갈 수 있습니다.
      • /admin/으로 시작하는 URL은 ADMIN 권한을 가진 유저만 들어갈 수 있습니다.
     
    Share article
    Contents
    User Entity

    devleekangho

    RSS·Powered by Inblog