728x90
반응형

0+ 스프링 49

[스프링 시큐리티] 4. 기본 API 및 Filter 이해(동시 세션 제어/세션 고정 보호/세션 정책)

[스프링 시큐리티] 4. 기본 API 및 Filter 이해(동시 세션 제어/세션 고정 보호/세션 정책) 해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다. 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com 동시 세션 제어 우리가 사용하는 웹서비스 중에 동일한 계정으로 동시에 로그인하는 것을 허용하지 않는..

[스프링 시큐리티] 3. 기본 API 및 Filter 이해(익명사용자 인증 처리 - AnonymousAuthenticationFilter)

[스프링 시큐리티] 3. 기본 API 및 Filter 이해(익명사용자 인증 처리 - AnonymousAuthenticationFilter) 해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다. 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com AnonymousAuthenticationFilter 우리가 로..

[스프링 시큐리티] 2. 기본 API 및 Filter 이해(Remember-me + JSESSIONID)

[스프링 시큐리티] 2. 기본 API 및 Filter 이해(Remember-me + JSESSIONID) 해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다. 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com JSESSIONID JSESSIONID 잠깐! 스프링 시큐리티 Remember-me에 관한 포스팅..

[스프링 시큐리티] 1. 기본 API 및 Filter 이해(로그인, 로그아웃 -WebSecurityConfigurerAdapter)

[스프링 시큐리티] 1. 기본 API 및 Filter 이해(WebSecurityConfigurerAdapter) 해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다. 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com 로그인, 로그아웃은 단순해 보이지만 보안이라는 측면에서 엄청 중요한 역할을 합니다. 스프링..

[JPA 에러 해결] Named parameter not bound: ~

[JPA] Named parameter not bound: ~ 작성한 쿼리를 테스트 하기위해 테스트 코드 작성한 것을 실행해보았다. //쿼리 public interface FaultJpaRepository extends JpaRepository { @Query(value = "select f from Fault f" + " where f.resolveTime is null" + " and (f.type =: type1 or f.type =: type2)" + " order by f.writeTime desc") List findBmsWarning(@Param("type1") int type1, @Param("type2") int type2); } @Test void findBmsWarningQueryTe..

[JPA 에러 해결] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~ " 오류 해결

문제 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~" 신규 프로젝트를 진행하던 도중 위와 같은 오류가 발생했다.. 😮 스프링 버전 문제인가 생각해서 버전을 변경해봐도 같은 오류가 발생했다. 원인 분석 DB 예약어? 무엇인가에 홀린듯이 계속 검색을 해봤지만, Entity에 DB 예약어를 사용한 경우에 발생한 경우가 대부분이었다. 정말로 예약어 문제인지 확인하기 위해서 간단하게 Entity를 새롭게 만들어봤다. @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long..

JPA 복합키 사용방법(@IdClass, @EmbeddedId)

실무에서 JPA를 이용하여 개발하던 중에 이와 같은 경고 메시지를 받게 되었다..😫 경고이니 처음에는 그냥 개발했는데,, 그래도 이건 아니다 싶어 알아보았다. 우선 JPA에서 PK가 단일 키 일때는 @Id를 이용하여 쉽게 Entity를 구현했다. 하지만, 복합키인 경우가 있기 때문에 아래와 같은 설정을 해줘야한다. 복합키를 구성하기 위해서는 필수 조건이 있다. 1. @EmbeddedId 또는 @IdClass 2. public의 no-args constructor 3. serializable을 상속 받기 4. equals(), hashCode() Override 여기서는 @IdClass를 이용하여 구현한 예제를 만들어 보겠습니다. (@EmbeddedId를 이용한 예시는 아래의 블로그 링크로 방문해주세요) ..

Websocket Server headers 추가 방법(javax.websocket, spring boot)

웹소켓 프로젝트 중 웹소켓 헤더를 수정할 일이 발생했다. 검색 중에 한국어도 정리된 내용이없어서 이에 대한 내용을 정리하려고 한다. 먼저 현재 구현된 웹소켓 코드부터 보자..! 1. configuration Gradle에 의존성을 추가한다. (매우매우매우매우 중요!!!!!!!!!!!!!!!!) // https://mvnrepository.com/artifact/javax.websocket/javax.websocket-api compileOnly group: 'javax.websocket', name: 'javax.websocket-api' @Configuration public class ServerConfigurator extends ServerEndpointConfig.Configurator impl..

JPA 다중 DataSource 설정

스프링 부트를 이용하면 application.properties 또는 application.yml에 설정하여 db에 쉽게 연결 할 수 있다. 하지만 n개의 db에 접속하기 위해서는 application.properties, application.yml에 설정한 것에 따라 bean에 직접 등록해야한다. 글쓴이는 yml을 이용하여 2개의 mariadb에 연결하는것을 포스팅 하겠습니다. 1. application.yml 설정 spring: jpa: hibernate: ddl-auto: validate naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl properties: hibernate: #..

728x90
반응형