인가(Authorization) 설정입니다. 이번 단계에서는hasRole() vs hasAuthority() 차이URL 기반 권한 설정메서드 기반 권한(@PreAuthorize)다중 권한 처리를 정리합니다. 4-1. hasRole() vs hasAuthority() 차이메서드내부 동작예시hasRole("ADMIN")내부적으로 "ROLE_ADMIN" 권한이 있는지 검사roles("ADMIN") 로 만든 계정만 통과hasAuthority("ROLE_ADMIN")"ROLE_ADMIN" 권한이 있는지 그대로 검사DB에서 ROLE_ 접두사 포함한 권한 직접 체크 중요: hasRole() 은 자동으로 "ROLE_" prefix를 붙입니다.그래서 DB에 ROLE_ADMIN을 저장했다면,hasRole("ADMIN") ..
메모리 사용자(InMemoryUserDetailsManager) 와 DB 기반 사용자(UserDetailsService) 를 순서대로 구현해볼게요.(예제는 Spring Security 6.x / Spring Boot 3.x 기준) InMemoryUserDetailsManager (빠르게 동작 확인)✅ 구성요소PasswordEncoder : 비밀번호 암호화(BCrypt)InMemoryUserDetailsManager : 메모리에 사용자 저장SecurityFilterChain : 폼 로그인 켜두고 URL 권한 설정 📂 SecurityConfig.javapackage com.example.security;import org.springframework.context.annotation.Bean;import ..
SecurityFilterChain 커스터마이징과 URL 인증 예외 처리를 해보겠습니다. 기본 시큐리티 동작Spring Security를 의존성에 추가하면 기본 동작은 다음과 같습니다.모든 요청 → 인증 필요기본 로그인 페이지(/login) 제공콘솔에 출력된 랜덤 패스워드로 로그인 가능 (username은 user) 하지만 실무에서는 일부 URL은 인증 없이 접근 가능하도록 해야 합니다.예) /, /css/**, /js/**, /images/**, /public/** 등 정적 리소스 특정 요청 인증 예외 처리📂 파일명: SecurityConfig.javapackage com.example.security;import org.springframework.context.annotation.Bean;impo..
인증(Authentication) vs 인가(Authorization)구분설명예시인증 (Authentication)사용자가 누구인지 확인하는 절차"너 진짜 홍길동이 맞아?" → 로그인 ID/비번 확인인가 (Authorization)인증된 사용자가 무엇을 할 수 있는지 결정"홍길동은 /admin 페이지 볼 권한이 있나?"➡ 인증이 먼저, 그 다음에 인가가 진행됩니다. 스프링 시큐리티의 필터 기반 구조스프링 시큐리티는 FilterChain 기반으로 동작합니다.즉, 모든 HTTP 요청은 DispatcherServlet에 도달하기 전에 SecurityFilterChain을 거칩니다.Client → SecurityFilterChain → DispatcherServlet → Controller 기본적으로 다음과 같..

- 사용자가 웹 브라우저에서 DOM 요소들과 상호 작용하는 것을 이벤트(event)라고 한다.- 예를 들어 버튼에 마우스 커서를 올렸을 때는 onmouseover 이벤트를 실행하고, 클릭했을 때는 onclick 이벤트를 실행한다. Form 요소는 값이 바뀔 때 onchange 이벤트를 실행한다. 리액트의 이벤트 시스템- 리액트의 이벤트 시스템은 웹 브라우저의 HTML 이벤트와 인터페이스가 동일하기 때문에 사용법이 꽤 비슷하다.- 다음 코드를 살펴 보자.import { useState } from 'react';const Say = () => { const [message, setMessage] = useState(''); const onClickEnter = () => setMessage('안..

- 리액트에서 state는 컴포넌트 내부에서 바뀔 수 있는 값을 의미한다.- props는 컴포넌트가 사용되는 과정에서 부모 컴포넌트가 설정하는 값이며, 컴포넌트 자신은 해당 props를 읽기 전용으로만 사용할 수 있다.- props를 바꾸려면 부모 컴포넌트에서 바꿔 줘야 한다. - 리액트에는 두 가지 종류의 state가 있다. - 하나는 클래스형 컴포넌트가 지니고 있는 state이고, 다른 하나는 함수 컴포넌트에서 useState라는 함수를 통해 사용하는 state 이다. 클래스형 컴포넌트의 state- 새로운 컴포넌트를 만들자. Counter.js 파일을 src 디렉터리에 생성하여 다음 코드를 작성해 보자. * Counter.jsimport { Component } from 'react';class C..
- Total
- Today
- Yesterday
- Network
- Session
- react
- Java Server Page
- Servlet
- 서브넷팅
- Binding
- nodejs
- 스프링
- 네트워크
- 리액트
- CSS 속성
- 내장객체
- Redux
- script element
- 스프링 시큐리티
- 세션
- Spring Security
- 제이쿼리
- httpServletRequest
- CSS
- el
- javaserverpage
- html css
- 인가
- JSP
- HTML
- 미들웨어
- Spring
- 서블릿
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |