Clean Code that Works.

음..

원래 하고 싶었던 건은(화면에 권한에 따라 보여질 뷰를 달리 하기 위해서)
<sec:authorize access="hasRole('ROLE_ADMIN') or ( '${bbs.username}' == principal.username)" />
이것을 적용하고 싶었지만
두껍게 한 부분을 .. 아마도
spEL 과 jstl EL 차이때문에 인식하지 못하고 에러를 뿜어 낸다.

그리하여,
Iterator iter = ((SecurityContext)session.getAttribute( "SPRING_SECURITY_CONTEXT")).getAuthentication().getAuthorities().iterator();
            while ( iter.hasNext()) {
                String role = ((GrantedAuthority) iter.next()).getAuthority();
                if ( role.equals( "ROLE_ADMIN") || sessionUsername.equals( username)) {
                    returnFlag = true;
                    break;
                }
            }

위와 같은 코드가 탄생 -_-..
세션에 있는 authorities 정보에서 권한을 직접 비교하도록 하였다.
비교해서 있으면 true 없으면 false..

값에 따라서 화면에 보여질 것도 제어 할 수 있도록 하고,
스프링 시큐리티 보면서 도메인 ACL은 아직 손을 못대고 있는데..
이번달에는 꼭 할 수 있도록 해야겠다.