검색해도 안 나오길래 직접 작성.. 어떤 SI의 전사가 또한 이 오류를 맞이할 것 같아서.. 엄청난 해결책은 아니지만 그래도 공유차원에서 적는다. 개발환경 spring boot 2.7.10 spring boot starter batch tibero6-jdbc.jar 티베로 버전은 6버전 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' implementation fileTree(dir: 'src/main/resources/libs', includes: ..
티베로를 사용하면 스프링 배치를 사용하려해도 영 시원치 않다. 스프링 배치가 지원하는 표준 데이터 베이스가 아니기 때문에 아래 오류가 나타나느데.. 비표준 데이터베이스를 등록하는 방법이다... @EnableBatchProcessing public class TiberoBatchConfigurer extends DefaultBatchConfigurer { @Autowired private DataSource dataSource; @Autowired private PlatformTransactionManager transactionManager; public TiberoBatchConfigurer() { super(); } public TiberoBatchConfigurer(DataSource dataSou..
Method 방식 - 개요 서비스 계층의 인가처리 방식 화면 메뉴 단위가 아닌 기능 단위로 인가처리 메소드 처리 전,후로 보안 검사 수행하여 인가처리 AOP 기반으로 동작 URL 방식은 Filter 기반이다. 사용자 요청을 Filter가 가로채서 자원에 대한 인가처리를 한다. AOP 기반과 Filter 기반은 내부동작의 차이가 있다. 프록시와 어드바이스로 메소드 인가처리 수행 보안 설정 방식 어노테이션 권한 설정 방식 @PreAuthorize("hasRole("USER")"), @PostAuthorize("hasRole("USER")"), @Secured("ROLE_USER") 맵 기반 권한 설정 방식 맵 기반 방식으로 외부와 연동하여 메소드 보안 설정 구현 Method 방식 - 어노테이션 권한 설정 보..
웹 기반으로 인가처리는 관리자(Admin) 페이지를 만들때도 항상 필요한 기능이다. 관리자만 접근이 가능하게 한다던지 이외 사용자는 메뉴별 권한에서 특정 메뉴만 접근이 가능하게 한다던지의 기획 요구사항이 많기 때문이다. 스프링 시큐리티 설정내에서 권한 관련 소스를 아래와 같이 설정할 수도 있지만 권한이 바뀌거나 삭제될때마다 프로그램 소스를 다시 컴파일해서 올릴 수 없기때문에 권한 관련 기능을 동적으로 만들 필요가 있다. antMatcher("/user").hasRole("USER") DB와 연동하여 자원 및 권한을 설정하고 제어함으로 동적 권한 관리가 가능하도록 한다. 설정 클래스 소스에서 권한 관련 코드 모두 제거 관리자 시스템 구축 회원 관리 - 권한 부여 권한 관리 - 권한 생성, 삭제 자원 관리 ..
강의에서 실전 프로젝트에 들어왔다. Ajax와 Form 인증으로 인증 처리를 할 때 스프링 시큐리티가 처리하는 과정은 크게 다르지 않다. 동일하게 Filter 기반으로 인증처리를 하게 되고 전반척인 처리과정은 거의 동일하다. 다만 좀 다른 점은 Form은 동기적인 처리방식이고 Ajax는 비동기적인 처리방식이라고 알고있으면 된다. 여기 그림에 나오는 Ajax가 Prefix로 붙은 클래스들은 모두 Ajax 인증을 구현하기 위한 Custom하게 만들은 클래스라고 보면 된다. 인증과 인가처리 부분으로 나눠서 보면된다. 위에는 인증 처리 부분이고 아래는 인가처리 부분이다. 인증 스프링 시큐리티는 모든 것이 필터로 시작된다. 필터로 시작되고 필터로 끝난다. AjaxAuthenticationFilter가 사용자의 요..
PasswordEncoder 인터페이스 비밀번호를 안전하게 암호화 하도록 제공해주는 인터페이스이다. 스프링 시큐리티가 이미 구현해 놓은 여러 암호화 구현체들이 있다. public interface PasswordEncoder { /** * Encode the raw password. Generally, a good encoding algorithm applies a SHA-1 or * greater hash combined with an 8-byte or greater randomly generated salt. */ String encode(CharSequence rawPassword); /** * Verify the encoded password obtained from storage matches ..
클라이언트가 서버에 요청할 때 스프링 시큐리티가 요청에 대해서 보안 검사를 하게된다. 해당 요청이 사용자가 리소스에 접근 할 수 있는지 권한이 있는지 확인하게 되는데 사용자가 서버에 요청한 자원들 중에 js 나 css, image 같은 리소스는 보안 필터를 적용할 필요가 없는 파일들이므로 제외시켜줘야 할 필요가 있다. 이런 리소스들을 제외하도록 설정할 수가 있다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { .... @Override public void configure(WebSecurity web) throws Exception { web.ignoring().requ..
AccessDecisionManager 인증정보, 요청정보, 권한정보를 이용해서 사용자의 자원접근을 허용할 것인지 거부할 것인지를 최종 결정하는 주체 여러 개의 Voter 들을 가질 수 있으며 Voter 들로부터 접근허용, 거부, 보류에 해당하는 각각의 값을 리턴받고 판단 및 결정 최종 접근 거부 시 예외 발생 AccessDecisionManager는 인터페이스로 이 인터페이스를 구현한 3가지의 구현체가 있다. 접근결정의 세가지 유형 AffirmativeBased 여러개의 Voter 클래스 중 하나라도 접근 허가로 결론을 내면 접근 허가로 판단한다. OR 조건이라고 생각하면 편하다. 기본 구현체이기도하다. ConsensusBased 다수표(승인 및 거부)에 의해 최종 결정을 판단한다. 동수일 경우 기본은..
- Total
- Today
- Yesterday
- localtime
- Spring
- jQuery
- elasticsearch
- maven
- mybatis
- mybatis config
- window
- rocky
- intellij
- 북리뷰
- JavaScript
- Kotlin
- config-location
- oracle
- Bash tab
- 오라클
- Spring Security
- LocalDateTime
- 베리 심플
- input
- Mac
- springboot
- docker
- svn
- Github Status
- k8s
- LocalDate
- Linux
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |