본문 바로가기

spring3

Spring - TransactionManager란? TransactionManager란? 문제점 Spring에서 사용할 수 있는 DB 접근 기술들에는 순수 JDBC, JPA, R2DBC, 등의 다양한 기술들이 있다. 그런데 각각의 기술들은 서로 다른 Transaction 처리 방법을 제공한다. 아래는 JDBC와 JPA의 차이점을 보여주는 예시이다. 순수 JDBC의 Transaction Connection con = dataSource.getConnection(); try { con.setAutoCommit(false);//트랜잭션 시작 //비즈니스 로직 bizLogic(con, fromId, toId, money); con.commit(); //성공시 커밋 } catch (Exception e) { con.rollback(); //실패시 롤백 throw .. 2023. 1. 7.
Spring - ldap unable to find valid certification path to requested target 에러 규모가 있는 기업에서는 LDAP을 많이 사용한다. LDAP이 단순하면서도 부서를 나누는게 효율적이기 때문이다. 오늘은 LDAP에 대한 이야기가 아니라 Spring에서 ldap을 연동할 때 발생하는 에러에 대해서 원인과 해결하는 방법을 알아보도록하겠다. 사내 LDAP 서버에 평문 통신을 할 때는 문제가 없었는데 SSL 요청을 날렸더니 아래와 같은 에러를 만나게 되었다. javax.naming.CommunicationException: simple bind failed: 서버URL [Root exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBui.. 2022. 8. 18.
Spring - @EnableGlobalMethodSecurity Spring Security 두가지 방법 Spring에서는 Web 기반의 Security과 Method 기반의 Security 기능을 제공한다. 메소드 기반은 메소드 별로 권한을 체크하는데 Web 기반과 다르게 필터가 아닌 컨트롤러 단에서 권한을 처리하는 기능이다. 두개의 Security 적용 방식은 하나만 선택하는게 아니라 동시에 섞어서 사용할 수 있다. Web Security에서 URL과 Token 유무로 인증을 하고 Method Security를 사용해서 권한에 따라 인가를 하는 방법이 있다. Rest api에서는 Web Security에서도 권한에 따라 인가를 처리할 수 있기 때문에(antMatcher 사용) 굳이 메소드 기반을 같이 사용하지 않아도 된다. 오늘은 두가지 방법 중에서 @Enabl.. 2022. 8. 14.