Encoder비밀번호를 passwordEncoder된 비밀번호로 관리passwordEncoder.encode(비밀번호) 를 해당 비밀번호에 넣어줘야함로그인 시 부호화(encode)된 비밀번호를 java에서 비교해서 로그인 결과를 확인한다 (부호화된 비밀번호를 우리가 복호화할 수는 없음)SQLMEMBER 테이블에 enabled 추가CREATE TABLE MEMBER_AUTH ( MEM_ID VARCHAR2(15) NOT NULL, AUTH VARCHAR2(150) NOT NULL, CONSTRAINT MEMBER_AUTH_PK PRIMARY KEY(MEM_ID, AUTH), CONSTRAINT FK_MEM_AUTH FOREIGN KEY (MEM_ID) REFEREN..
Spring
sqlCREATECREATE TABLE USERS( USERNAME VARCHAR2(150) NOT NULL, PASSWORD VARCHAR2(150) NOT NULL, ENABLED VARCHAR2(1), Constraint PK_USERS PRIMARY KEY (USERNAME))CREATE TABLE AUTHORITIES( USERNAME VARCHAR2(150) NOT NULL, AUTHORITY VARCHAR2(150) NOT NULL, CONSTRAINT PK_AUTH PRIMARY KEY (USERNAME, AUTHORITY), CONSTRAINT FK_AUTH_USER FOREIGN KEY (USERNAME) REFERE..
스프링 시큐리티보안 기능을 구현하는 데 사용되는 프레임 워크스프링 시큐리티는 필터 기반으로 동작하기 때문에 스프링 MVC와 분리되어 동작된다인증(Authentication) - 로그인인가(Authorization) - 권한 (메뉴 접근, 버튼 접근)제공기능세션 관리로그인 처리CSRF 토큰 처리암호화 처리자동 로그인CSRF(Cross-site request forgery)크로스 사이트 요청 위조는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격환경 설정pom.xml org.springframework.security spring-securit..
Hibernate-Validatorbean(자바 빈 클래스, VO)의 유효성 검사의 기능을 이용해 서버측에서 입력값 검증을 하는 라이브러리빈 클래스 앞에 @Validated를 붙이면 활성화 된다Bean Validation이 제공하는 제약 애너테이션NotNull : 빈 값 체크(int타입)NotBlank : null 체크, trim후 길이가 0인지 체크(String타입)Size : 글자 수 체크Email : 이메일 주소 형식 체크Past : 오늘보다 과거 날짜(ex. 생일)Future : 미래 날짜 체크(ex. 예약일)DateTimeFormat(pattern="yyyy-MM-dd") : 해당하는 패턴의 날짜 String을 Date로 변환AssertFalse : false 값만 통과 가능AssertTrue ..
트랜잭션만약 회원과 카드, 취미 테이블을 정보를 저장하는 작업을 할 시 하나라도 실패하면 저장을 모두 하지 말아야한다회원 > 취미 > 카드 작업 중에 카드 저장이 실패된 경우카드는 저장되지 않았지만 회원과 취미는 저장된 상태가 된다.하나라도 실패할 시 한번에 관리해야되므로이러한 현상을 관리해주기 위해서 트랜잭션을 관리해야하며애노테이션@Transactional를 통해 이루어진다초기 설정root-context.xmlbean에 추가xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/bean..
상품 삭제는 해당 상품이 이미 구입된 상품이 되어조인된 테이블을 삭제할 수 없기 때문에 delete가 아닌 update를 통해서 삭제 여부를 체크하는 형식으로 변환하였다 상품에 수정은사진 파일이 변경되지 않을 땐 기존 파일을 유지하고사진 파일이 변경되었을 땐file 테이블 삭제 (file_group, file_detail)기존 사진 파일도 삭제새로운 파일을 저장의 기능을 구현하도록 하였다. 허나 이 방식은 사진파일을 삭제해서 사진 파일을 아예 안들어가게 하거나기존에 올렸던 파일을 부분적으로 삭제,다른 사진과 함꼐 추가 등의 기능을 구현하지 않아 완전하지 않은 방식이라고 볼 수 있으며해당 기능을 구현하는 방식을 생각해봐야겠다JSPdetail.jsp ..