김쭈
73
2021-08-16 10:49:38
4
217

스프링 시큐리티...


궁금한게 있어서 여쭤봅니다...

@Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        List<GrantedAuthority> authorities = new ArrayList<>();
        authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
        return authorities
    }


여기서 SimpleGrantedAuthority("ROLE_USER") 에서 "ROLE_USER"의 역할이 뭔지 알고 싶습니다.

public final class SimpleGrantedAuthority implements GrantedAuthority {

	private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;

	private final String role;

	public SimpleGrantedAuthority(String role) {
		Assert.hasText(role, "A granted authority textual representation is required");
		this.role = role;
	}

	@Override
	public String getAuthority() {
		return this.role;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj instanceof SimpleGrantedAuthority) {
			return this.role.equals(((SimpleGrantedAuthority) obj).role);
		}
		return false;
	}

	@Override
	public int hashCode() {
		return this.role.hashCode();
	}

	@Override
	public String toString() {
		return this.role;
	}

}
여기서 role 부분이 제가 정한 role이 들어가야 되나요? 아니면 ROLE_USER라는게 따로 있는건가요?
0
  • 답변 4

  • iMac 0
    474
    2021-08-16 11:08:30

    직접 정한 ROLE NAME이 들어가구요, 예시코드들에선 통상적으로 쓰이는 의미로 쓰인 것 같아요.

    "사용자"라고 한글로 적어도 무방합니다만 권한 체크하는부분에도 맞춰줘야될거구요

  • 김쭈
    73
    2021-08-16 11:11:08

    iMac 0

    직접 정한 ROLE_NAME이면 config 클래스 부분에서 정한것인가요? 시큐리티가 많이 어렵네요

  • 하루히즘
    875
    2021-08-16 11:12:55
    그냥 쓰고 싶은 역할 이름이 들어가는거 아닌가요? 대신에 역할(Role)이라면 앞에 'ROLE_'이라는 접두사가 붙는게 컨벤션이라곤 하더군여
  • 김쭈
    73
    2021-08-16 11:14:05

    하루히즘 깨달음을 얻었습니다.... 감사합니다..

  • 로그인을 하시면 답변을 등록할 수 있습니다.