Spring-diary/WEB
-
[Spring Security][DB][권한부여] <security:jdbc-user-service>Spring-diary/WEB 2020. 2. 25. 10:40
data Source에 로그인을 위한 sql문 설정을 해두어서 사용한다. 기존의 JdbcUserDetailsManager를 사용하게 되면 테이블 이름이 고정되지만 이 태그를 사용하게 되면 테이블의 이름을 임의로 정하고, sql문도 좀더 유동적으로 작성해 인증절차를 진행할 수 있다. data-source-ref DB 정보를 가지고 온다. users-by-username-query username에 따라 판단 하도록 sql문을 설정한다. authorities-by-username-query 해당 username에 어떤 권한이 있는지 여부를 판단하는데 필요한 sql문을 설정한다.
-
[Spring Security][DB] DB와 연동해 로그인 하기Spring-diary/WEB 2020. 2. 25. 10:00
방법(기존 Spring-security 설정에서) 서비스를 상용화 하기 위해서 Authentication(인증)부분을 DB로 이전해야 한다. 권한(Authority)과 세부정보(UserDetails)들을 모두 DB에 기록한다. -JdbcUserDetailsManager 클래스에 내장된 SQL문에 맞게 열의 이름과 Table명을 작성해 주어야 한다. *JdbcUserDetailsManager -데이터를 조회하고 업데이트하는 쿼리가 내장되어 있다. 새 user를 만들고 기존 user를 업데이트 할 수 있는 메소드를 가진 UserDetailsManager의 구현체이다. Spring Security에서는 정보들을 쿼리를 이용해 가져온다.
-
Spring SecuritySpring-diary/WEB 2020. 2. 24. 12:12
정의 스프링 기반의 보안을 담당하는 스프링 하위 프레임워크 Filter 기반으로 동작하기에 Spring MVC와 분리되어 관리 및 동작. 보안 용어 접근 주체 Principal 보호된 리소스에 접근하는 대상 인증 Authentication 보호된 리소스에 접근하는 대상에 대해서 이 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정 인가 Authorize 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정 권한 어떠한 리소스에 대한 접근 제한, 모든 리소스는 접근 제어 권한이 걸려있다. 인가 과정에서 해당 리소스에 대한 제한된 최소한의 권한을 가졌는지 확인한다. 인증의 절차 크리덴셜 인증 웹에서 사용하는 대부분의 인증 방식. 권한을 부여 받기위해 1차례의 인증과정..
-
Spring JDBC란?Spring-diary/WEB 2020. 2. 20. 22:22
데이터 액세스 공통 개념 DAO(Data Acess Object)는 비즈니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙 DataSource ConnectionPool 사용을 위해 쓴다. Spring에서는 DataSource를 공유 가능한 Spring Bean으로 사용할 수 있도록 제공해 준다. *DataSource 사용 이유 jdbc를 사용하여 DB에 접속하기 위해서는 드라이버를 로드하고 DB에 접속하여 connection 객체를 받아와야 한다. 이런식이면 db에 쿼리를 보낼때 마다 드라이버를 로드하고 커넥션을 생성하고 닫게되는데 커넥션을 생성하고 닫는데 시간이 소모되기에 동시접속자가 많은 사이트의 경우 전체의 성능을 낮추는 원인이 된다. (드라이버도 한번만 로드하면 되는데 불필요하게 여러번 로드하..
-
JDBC TemplateSpring-diary/WEB 2020. 2. 20. 21:26
JDBC의 모든 기능을 최대한 활용할 수 있는 유연성을 제공하는 클래스로 3가지 기능을 수행 -실행 -조회 -배치 사용방법 Dao에서 JdbcTemplate 멤버필드 생성 후 setter로 초기화 해준다. Query문을 작성해 변수로 선언하고 jdbctemplate의 method를 이용해 데이터를 가지고 오거나 수정한다. *rowmapper Template 객체의 query메소드를 통해 결과값을 가져올 때 sql문에 따라 추출된 결과를 리턴받을 객체의 멤버변수에 적절하게 할당하기 위한 매핑수단이다. PreparedStatementSetter를 통해 SQL문의 조건식을 만족시킬 수도 있다.
-
LomBokSpring-diary/WEB 2020. 2. 20. 12:02
정의 롬복(Lombok)은 자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString과 멤버필드에 주입하는 생성자를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리, 프로젝트이다. 설치 Lombok 사이트에서 jar 파일 다운로드 IDE가 설치된 드라이브에 Jar파일을 둔다. cmd에서 Java -jar lombok.jar 입력후 실행 및 Install Model Object Class에 가서 Annotaion을 준다. -@Data 등 다양한 Annotation이 존재하니 API 찾아볼 것.- @AllArgsConstructor :모든 매개변수 있는 생성자 설정 @NoArgsC..
-
Spring에서 MyBatis 사용하기Spring-diary/WEB 2020. 2. 18. 17:58
스프링에서 MyBatis를 사용하기 위해선 여러가지 복잡한 설정들이 새로운 프로젝트가 시작 될 때마다 한번씩 필요하다. Web.xml Web.xml에서 springDispatcherServlet 설정과 한글처리를 해준다. Pom.xml pom.xml에서 기본적인 라이브러리를 받아온다. -MyBatis를 사용하니 MyBatis를 사용하기 위한 라이브러리 표시만 했다.- Spring Bean Configuration File Spring Bean Configuration File에서 MyBatis의 Session 사용을 Spring에서 관리할 수 있도록 설정한다. PropertyPlaceholderConfigurer,BasicDataSource,SqlSessionFactoryBean,SqlSessionTem..
-
[STS]Spring에서 FileUpload하기Spring-diary/WEB 2020. 2. 17. 13:40
Spring에서 파일 업로드를 하기위해 dependency로 commonsFileUpload로 가지고 온다. 저장되는 경로를 잡아주기 위해 CommonsMultipartResolver를 인스턴스 해주고 임시 저장소인 uploadTempDir를 속성으로 지정해준다. Controller에서 다음과 같은 설정을 해준다 1. File Upload에 대한 Class를 만들어준다. 멤버필드로써 MultipartFile 클래스의 객체를 사용한다. *MultipartFile 클래스 사용자가 업로드한 File을 핸들러에서 손쉽게 다룰 수 있도록 도와주는 Handler의 매개변수 중에 하나 RequestMapping을 통해 파일 저장 경로,파일 이름과 저장을 시키는 행위에대한 프로그램을 짠다.