일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 목록
- 시큐리티 로그아웃
- java
- Linux
- 프로그래머스
- Spring boot
- springboot
- css
- 소스트리
- 시큐리티로그인
- programmers
- 시큐리티
- springSecurity
- html
- 리눅스
- JAVA11
- 2차원배열
- javascript
- 스프링 부트
- 코딩테스트
- 로그인
- 싱글톤
- security
- 시큐리티 로그인
- input태그
- sql
- StyleSheet
- 반복문
- gradle
- codingtest
- Today
- Total
목록lectureNote/SPRING (19)
JAVAIARY

Bean 어렴풋이 스프링에서 관리하는 객체라고 이해하고 넘어갔지만 명확하게 개념이 정리된 것은 아니었다. 그래서 스프링 빈에 대해 공부를 좀 해보려는 찰나, 찬찬히 알아보자... 공식 문서에 따르면 빈의 정의는 이렇다. Spring에서는 애플리케이션의 백본을 형성하고 Spring IoC 컨테이너에 의해 관리되는 객체를 빈이라고 합니다. Bean은 Spring IoC 컨테이너에 의해 인스턴스화, 조립 및 관리되는 객체입니다. 그렇지 않으면 빈은 단순히 애플리케이션의 많은 객체 중 하나일 뿐입니다. Bean과 이들 간의 종속성은 컨테이너에서 사용하는 구성 메타데이터에 반영됩니다. 여기서 말하는 Bean의 관리란 객체(bean)의 생명주기, Scope(Singleton,Prototype) 등을 말한다. 읽어보..

원래는 AWS에 올라가 있는 서버에 서비스를 추가하려고 했으나, 그게 맘처럼 잘 안돼서 (...) 로컬로 해 보기로 했다. 1. Eureka서버 로컬에서 구축하기 Eureka_local 이름으로 프로젝트를 하나 생성하고 build.gradle 수정 plugins { id 'java' id 'io.spring.dependency-management' version '1.1.0' } group = 'org.example' version = '0.0.1-SNAPSHOT' repositories { mavenCentral() } dependencies { implementation("org.springframework.cloud:spring-cloud-starter-netflix-eureka-server") i..

1. 문제 기존에 세션을 통해 관리하던 것들이 시큐리티를 적용하면서 작동하지 않음 회원탈퇴도 그 중 하나 1 . 회원탈퇴시 DB에서 회원정보를 삭제시키고 2. 회원 로그아웃된 상태로 회원 탈퇴 완료 페이지로 이동해야하는데 기존 세션을 삭제시키는 형태로 하던 방식이 작동하지 않음 2. 해결 인증저장에 대한 개념 https://catsbi.oopy.io/f9b0d83c-4775-47da-9c81-2261851fe0d0 스프링 시큐리티 주요 아키텍처 이해 목차 catsbi.oopy.io 해당 링크 참고 SecurityContextHolder.clearContext() 해당 구문을 추가함으로써 인증객체를 삭제해준다. 3. 결과

1. 메인페이지 1) 태그라이브러리 추가 2.) 로그인 필요/ 불필요한 부분 나누어서 태그 시큐리티 태그 안에 넣어주기 로그인하지 않았을 때 노출되는 부분 principal 객체를 p변수로 받음 user 이름 출력 로그인 된 상태 중 'ROLE_ADMIN' 권한을 가지고 있으면 추가로 보이는 부분 구현 3) 로그인 후 확인

1. DB -- 자동 로그인 테이블 create table persistent_logins ( username varchar(16) not null, series varchar(64) primary key, token varchar(64) not null, last_used timestamp not null); 2. Spring 1) security-context 2) loginForm checkbox name="remember-me" 3. 확인 자동로그인 체크박스를 체크한 채로 로그인 remember-me 쿠키 생성 확인 persistent_logins table에 토큰이 추가된 것 확인 브라우저 종료 후 다시 sample/admin 페이지로 접속 네트워크를 확인하면 'remember-me' 쿠키의 정..

표현식 설명 hasRole( [role] ) hasAuthority( [authority] ) 해당 권한이 있으면 true hasAnyRole( [role,role2]) hasAnyAuthority([authority]) 여러 권한들 중에서 하나라도 해당하는 권한이 있으면 true principal 현재 사용자 정보를 의미 permitAll 모든 사용자에게 허용 denyAll 모든 사용자에게 거부 isAnomymous( ) 익명의 사용자의 경우(로그인을 하지 않은 경우도 해당) isAuthenticated( ) 인증된 사용자면 true isFullyAuthenticated( ) Remember-me로 인증된 것이 아닌 인증된 사용자인 경우 true 대부분 true/false 리턴 조건문 형식과 비슷 /s..

1. taglib 추가 2. 불러올 정보 태그로 불러오기 admin.jsp /sample/admin page principal : MemberVO : 사용자이름 : 사용자아이디 : 사용자 권한 리스트 : 로그아웃 property="principal.member"를 통해 반환되는 것은 UserDetailsService에서 반환된 객체 = CustomUserDetailsService 에서 dto를 담아 반환된 (생성된)CustomUser() 객체 @Override public UserDetails loadUserByUsername(String user_id) throws UsernameNotFoundException { MemberDto dto=null; log.warn("Load User By UserNa..

1. DB 생성 -- 시큐리티 권한 테이블 create table user_auth ( user_id varchar(16) not null, auth varchar(50) not null ); -- 시큐리티 권한테이블 fk생성 alter table user_auth add FOREIGN KEY(user_id) REFERENCES tb_user(user_id) ON DELETE CASCADE; 권한테이블에 아이디에 맞는 권한을 설정해 넣어준다. ex ) -- 관리자 INSERT INTO public.user_auth (user_id, auth) VALUES('admin', 'ROLE_ADMIN'); 2. Mybatis 설정 1) Mapper 생성 select tb_user.user_id, user_pw, ..