- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[Spring] 로그인 여부에 따라 메뉴 숨기고 나타내기 (SECURITY) 본문
메인페이지에서 로그인 하였을 경우엔 로그아웃, 로그인을 하지 않았을 경우엔 로그인 버튼을 띄워주도록 하겠습니다.
시큐리티의 태그들을 사용하기 위해 taglibs 라이브러리를 추가해줍니다.
pom.xml
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
이후, security taglib을 사용하겠다는 선언을 해주어야 합니다.
security-context.xml에 http에 다음과 같이 추가합니다.
<http auto-config="true" use-expressions="true">
security taglib을 사용하고 싶은 jsp 파일 상단에 다음과 같이 선언합니다.
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
이후 로그인/로그아웃 버튼을 띄워주고 싶은 곳에 security의 authorize 태그를 사용합니다.
<sec:authorize access="isAnonymous()">
<a href="${CONTEXT }/j_spring_security_check">로그인</a>
</sec:authorize>
<sec:authorize access="isAuthenticated()">
<a href="${CONTEXT }/j_spring_security_logout">로그아웃</a>
</sec:authorize>
isAnonymous()는 익명사용자를 의미합니다.
j_spring_security_check는 security에서 default로 제공하는 로그인 기능입니다.
isAuthenticated()는 인증한 사용자를 의미합니다.(로그인 후)
j_spring_security_logout은 security에서 default로 제공하는 로그아웃 기능입니다.
그 외에도, 관리자만 해당시키고 싶다면 access="hasRole('ROLE_ADMIN')"을 써줍니다.
use-expressions(표현식 사용)을 true로 주었기 때문에 다양한 표현식을 사용할 수 있습니다.
http://docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html 참조
Expression | Description |
---|---|
hasRole([role]) | Returns true if the current principal has the specified role. |
hasAnyRole([role1,role2]) | Returns true if the current principal has any of the supplied roles (given as a comma-separated list of strings) |
principal | Allows direct access to the principal object representing the current user |
authentication | Allows direct access to the current Authentication object obtained from the SecurityContext |
permitAll | Always evaluates to true |
denyAll | Always evaluates to false |
isAnonymous() | Returns true if the current principal is an anonymous user |
isRememberMe() | Returns true if the current principal is a remember-me user |
isAuthenticated() | Returns true if the user is not anonymous |
isFullyAuthenticated() | Returns true if the user is not an anonymous or a remember-me user |
다음 포스팅은 로그인 창을 자신의 입맛에 맞게 커스터마이징 하고,
XML이 아닌 Database로 부터 계정 정보를 불러와 로그인 하는 방법을 알아보겠습니다.
[출처] http://goldenraccoon.tistory.com/entry/로그인-여부에-따라-메뉴-숨기고-나타내기-SECURITY
'★─Programing > ☆─WebProgram' 카테고리의 다른 글
[Spring] 04. Spring + tiles 설정 (0) | 2016.07.26 |
---|---|
[AJAX] ajax 호출시 마우스 커서를 'wait'로 변경하기 (0) | 2016.07.25 |
[jQuery] .slideToggle()로 객체를 말아올리거나 서서히 펼치는 예제 (0) | 2016.07.25 |
[HTML] textarea에서 엔터친 데이터를 보여줄때 br이 먹지 않습니다. (0) | 2016.07.25 |
[jQuery] 효과, 슬라이딩 (slideUp, slideDown, slideToggle) (0) | 2016.07.25 |