스프링시큐리티의 GrantedAuthority 인터페이스를 enum 타입으로 구현했는데, 이 구현체에 toString() 을 선언하면서 의도와는 다르게 동작하는 문제가 발생했다.
이런 코드인데, toString()
code, key, order 에 대한 내용을 출력하도록 만들면...MemberAuthority[code="project", key="code.memberAuthority.administrator", order=1]
의 형태로 나오게 된다. 스프링시큐리티에서는 권한을 문자열로 받기에 ADMINISTRATOR
으로 나와야하는데... 전혀 다른 형태가 되어버리니 권한 체크가 제대로 되지 않을 수밖에...
○ 정리
- enum 타입에 대해서
toString()
을 적용할 때는 잠시만 고심해보자.
'Java > Language' 카테고리의 다른 글
함수형 인터페이스@FunctionalInterface 는 메서드가 한개밖에 없다며?? (0) | 2015.11.17 |
---|---|
백명석님의 클린코더스 강의 (0) | 2015.09.25 |
실행가능한 JAR여부 판단하기 (0) | 2015.03.19 |
파일구분자(File.separator)를 대체하는 Path, Paths 사용하기 (1) | 2014.12.09 |
Effective Java 2nd Edition 을 읽고… (0) | 2014.11.11 |