빈쿵바라기
좌충우돌 개발자의 기록
빈쿵바라기
전체 방문자
오늘
어제
  • 분류 전체보기 (53)
    • Programming (25)
      • JAVA (12)
      • Spring Boot (6)
      • JPA (7)
      • Python (0)
    • Database (12)
      • RDBMS (4)
      • NoSQL (7)
    • Server (11)
    • Elasticsearch (3)
    • ETC (2)

블로그 메뉴

    공지사항

    인기 글

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    빈쿵바라기

    좌충우돌 개발자의 기록

    Programming/Spring Boot

    [Spring Security] 수동 인증(강제 로그인)

    2023. 5. 16. 11:33

    Spring 프로젝트를 진행하다보면 정의되지 않은 폼을 통해서 인증 처리를 해주어야 하는 경우가 있다.

    이럴 때 특정 인가된 정보를 SecurityContext에 수동으로 등록해주고 세션에 주입해주면 된다.

    @RequestMapping(value="login", method=RequestMethod.POST)
    public String login(HttpServletRequest request) throws Exception{
        CustomUserDetailsImpl user = new CustomUserDetailsImpl();
    
        // 수동으로 권한 설정
        List<GrantedAuthority> roles = new ArrayList<>();
        roles.add(new SimpleGrantedAuthority("ROLE_USER"));
        user.setUserRole(roles);
    
        user.setUsername("Tester");
    
        // 설정된 사용자 정보를 SecurityContext에 등록
        Authentication auth = new UsernamePasswordAuthenticationToken(user, null, roles);
        SecurityContext securityContext = SecurityContextHolder.getContext();
    	securityContext.setAuthentication(auth);
    
    	// 세션에 Spring Seuciry Context를 주입
        HttpSession session = request.getSession(true);
        session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
    	
        return "redirect:/login/success";
    }
    저작자표시 (새창열림)

    'Programming > Spring Boot' 카테고리의 다른 글

    Spring AOP를 활용한 모든 Request에 Log 남기기  (0) 2023.03.29
    [Jasypt] Spring Boot 애플리케이션의 프로퍼티 암호화  (0) 2023.03.24
    [Maven] 라이브러리 Dependency 충돌 해결하기(Maven Tree)  (0) 2023.03.02
    [Mybatis] PostgreSQL ilike 구현하기(feat. Criteria 커스텀하기)  (0) 2022.08.20
    [Spring Security] 두개의 로그인 페이지(Multiple Login Pages)  (0) 2022.08.10
      'Programming/Spring Boot' 카테고리의 다른 글
      • Spring AOP를 활용한 모든 Request에 Log 남기기
      • [Jasypt] Spring Boot 애플리케이션의 프로퍼티 암호화
      • [Maven] 라이브러리 Dependency 충돌 해결하기(Maven Tree)
      • [Mybatis] PostgreSQL ilike 구현하기(feat. Criteria 커스텀하기)
      빈쿵바라기
      빈쿵바라기
      삽질하는 개발자의 좌충우돌 개발기

      티스토리툴바