이번에 SpringSecurity Configuration 을 이용해서 form 로그인 페이지, 실패 페이지, 로그인 이후 페이지, 권한 처리등을 간단하게 만들어보겠다. 1. S1SecurityConfiguration @EnableWebSecurity public class S1SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.formLogin() .loginPage("/login") .loginProcessingUrl("/login-action") .usernameP..
SecurityConfiguration application.yml 파일에서도 spring security 관련 설정을 할 수 있지만 spring boot 2.x 에서 많은 부분이 deprecated 됐고 좀더 세밀한 설정을 하기 위해서는 WebSecurityConfigurerAdapter를 상속 받는 클래스를 생성해야된다. 아래 코드는 #1의 설정을 자바로 설정한 코드이다. @EnableWebSecurity public class S1SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.formLogin(); ..
GitHub의 WebHooks 를 이용해서 Git PUSH 이벤트 발생시 Jenkins를 자동으로 Build할 수 있다. 하지만 방화벽이나 서버의 접근권한을 IP로 체크할 경우 GitHub 에서 Jenkins 서버에 요청을 보낼수 없다. 물론 Jenkins의 8080 Port 를 전체 IP대역 (0.0.0.0/32)으로 허용하면 되겠지만 보안적 위험에 노출될 수 있다. 하지만 아래 URL를 이용해서 GIT HUB 의 서비스별 IP정보를 받아올 수 있고 hooks 서버의 IP도 포함돼있다. https://api.github.com/meta 자세한 내용은 아래 링크를 참고 바란다. https://developer.github.com/v3/meta/
들어가면 Spring Boot에서 Spring Security를 사용하는법을 알아보려한다. 이론적인 부분은 제외하고 코드중심으로 아무런 설정도 없는 기본 상태에서 살을 붙혀가면서 작업을 할 예정이다. 설정 Spring Boot 2.2.2.RELEASE Java 1.8 POM.xml 가장 기본적인 Spring WEB , Security 와 UI 처리를 위한 template engine 인 thymeleaf를 포함하고있다. org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-web 테스트..
스프링 부트에서 H2 DB 사용 및 Console을 사용하기 위한 코드이다. Spring Security 을 같이 사용시에 몇가지 제약 사항(CSRF, X-Frame-Options 등) 으로 H2DB Console을 사용하지 못한다. 자세한 설명은 생략하고 아래와 같은 설정으로 사용가능하다. application.yml spring: h2: console: enabled: true path: /h2 datasource: url: jdbc:h2:file:~/s1db username: sa password: driverClassName: org.h2.Driver SecurityConfiguration package info.m2sj.s1; import org.springframework.context.ann..
컬럼의 문자열이 날짜 유형에 적합한 문자열을 확인하는 함수 create or replace function iss_date(s varchar) returns int as $$ begin if coalesce(s,'-') = '-' then --null check return 1; end if; perform s::date; return 0; exception when others then return 1; end; $$ language plpgsql; select iss_date(ymd), ymd from a_test; -------------------------------------- result 0,20191231 0,20190202 0,20190122 0,20190731 1,20191232 1,2..
한대의 PC에서 Github 다중 계정을 이용하는 방법은 Git크라켄이나 multiple ssh 를 이용하는 방법등이 존재하지만 오늘은 간단한 방법을 알아보겠다. 약간은 번거롭지만 쉽게 이용할 수 있는 방법이다. 1. 키체인 접근 Spotlight 검색(command+ space)기능을 이용하면 쉽게 접근할 수 있다. 2. Github 인터넷 암호 키체인 접근화면에서 github 로 검색한다. 3. 변경할 Github 계정 등록 github.com 에서 더블 클릭 후 상세 정보 화면에서 github 계정과 패스워드를 입력한다.
자바 어플리케이션을 모니터링 하기 위해서는 APM Tool 이나 Jstat, Jmap 등과 같은 Java command 로 확인이 가능하다. 하지만 서버 Console에서 메모리, CPU 사용율을 간단히 확인하고 싶을 때 각종 유,무료 APM Tool은 너무 거창하고 Jstat 같은 command 명령어는 시각화 부분이 아쉽다. 이럴 때 사용할 수 있는 JVM-mon 이라는 오픈소스툴을 소개하려 한다. 다운로드 및 압축해제 $wget https://github.com/ajermakovics/jvm-mon/releases/download/0.3/jvm-mon-0.3.tar.gz --2019-11-27 09:04:46-- https://github.com/ajermakovics/jvm-mon/releases..
웹 개발을 할때 HTTPS를 이용한 URL을 사용할 경우가 있다. HTTPS를 사용하기 위해서 SSL 인증서가 필요하다. 보통 실서비스 환경의 인증서 발급은 공인된 인증 기관에서 유료 발급을 받지만 비용이 발생하기 때문에 개발 서버는 주로 사설 인증서를 발급 받아 설치하는데 문제는 사설 인증서는 인증된 CA가 아니기 때문에 브라우저등에서 차단한다. 그래서 해당 인증서를 신뢰할수 있는 Root 인증서로 등록해야 된다. Mac OS 에서 신뢰할수 있는 인증서로 등록하는 방법이다. gist 에서 InstallCert.Java 를 다운로드 curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCe..
Redis 를 Ubuntu 에 설치하고 파일을 읽어서 레디스에 저장하는 방법을 간단하게 알아보려 한다. apt update hsquare@ep-big:~$ sudo apt update Ign:1 http://repos.azulsystems.com/ubuntu stable InRelease Hit:2 http://repos.azulsystems.com/ubuntu stable Release Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB] Hit:5 http://ppa.launchpad.net/openjdk-r/ppa/ubuntu xenial InRelease Hit:6 http://kr.archive.ubuntu.com/..
- Total
- Today
- Yesterday