웹 개발

Get Spring Security Principal in JSP EL expression

노루아부지 2021. 7. 11. 23:31

JSP에서는 java를 사용할 수 있기 때문에 다음과 같이 java 코드를 사용하여 Spring Security Principal을 가져올 수 있습니다.

 

<%=org.springframework.security.core.context.SecurityContextHolder.getContext()
    .getAuthentication().getPrincipal().equals("anonymousUser")
    ? "false":"true"%>

 

하지만 jsp에 java 코드를 사용하는건 좋지 않은 방법입니다.

 

이 때 다음과 같이 사용할 수 있습니다.

 

1. taglibs 라이브러리를 추가합니다.

* maven의 경우 pom.xml에 추가합니다.

<dependency>
  <groupId>org.springframework.security</groupId>
  <artifactId>spring-security-taglibs</artifactId>
  <version>3.1.3.RELEASE</version>
</dependency>

 

2. JSP 상단에 다음과 같은 코드를 추가합니다.

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

 

3. 다음을 추가하여 사용자 개체를 만듭니다.

<sec:authentication var="user" property="principal" />

 

4. 이제 아래와 같이 사용할 수 있습니다.

${user.userName}

 

 

 

[출처]

https://stackoverflow.com/questions/9048995/get-spring-security-principal-in-jsp-el-expression

https://docs.spring.io/spring-security/site/docs/3.0.x/reference/taglibs.html

728x90
loading