애플리케이션 보안 설정하기
WebSecurityConfigureAdapter를 확장해서 구성 클래스 구성 cofigure 메서드 오버라이드
.antMatchers("/").access("hasRole('READER')") / 경로는 유저 롤이 있을때만 허용
.antMatchers("/**).permitAll() 그외의 /** 경로는 모두 허용
어플리케이션에 WebMvcConfigurerAdapter extend
addViewControllers 컨트롤러와 뷰 매핑
addArgumentResolvers 유저 컨트롤러 매개변수 처리 리졸버 추가
요청페이지에서 사용자 정보를 얻을 수있게 모델에도 추가
사용자 유저 클래스에 UserDetails extend
resources/data.sql db 초기화할 정보 추가
insert into Reade (username,password, fullname) vlaues ('craig', 'password', 'Craig Walls');
프로퍼티를 이용해 구성하기
1. 명령줄 인자 2. java:comp/env에서 얻는 JNDI속성 3. jvm 시스템 프로퍼티
4. 운영체제 환경 변수 5. random.*로 시작하는 프로퍼티 때문에 무작위로 생성된 값
6. 애플리케이션 외부에 있는 application.properties(yml) 7. 내부 application.properties(yml)
8. @PropertySource로 지정된 프로퍼티 소스 9. 기본 프로퍼티
properties yml은 하위디렉토리의 우선순위가 높고 yml이 높다
템플릿 캐싱 비활성화
그루비 템플릿 spring.groovy.template.cache
벨로시티 spring.,velocity.cache
서버포트 server.port
프로파일 구성
@Profile("production") 프로덕션일때만 해당 구성 사용
spring.profiles.active=production
프로파일에 특화된 프로퍼티 파일
application-production.properties파일과 application.properties 생성 yaml 여러 프로파일 구성
오류 정보 timestamp status error exception message errors trace path
이미지는 src/main/resources/static/images나 src/main/resources/public/images에 넣는다
compile('org.springframework.boot:spring-boot-starter-security')
기본 설정시 시큐리티 패스워드가 로그에 출력되지만 실제 이용은 어렵다org.spriingframework.boot spring-boot-starter-security
WebSecurityConfigureAdapter를 확장해서 구성 클래스 구성 cofigure 메서드 오버라이드
.antMatchers("/").access("hasRole('READER')") / 경로는 유저 롤이 있을때만 허용
.antMatchers("/**).permitAll() 그외의 /** 경로는 모두 허용
어플리케이션에 WebMvcConfigurerAdapter extend
addViewControllers 컨트롤러와 뷰 매핑
addArgumentResolvers 유저 컨트롤러 매개변수 처리 리졸버 추가
요청페이지에서 사용자 정보를 얻을 수있게 모델에도 추가
사용자 유저 클래스에 UserDetails extend
resources/data.sql db 초기화할 정보 추가
insert into Reade (username,password, fullname) vlaues ('craig', 'password', 'Craig Walls');
프로퍼티를 이용해 구성하기
$java -jar build/libs/readinglist-0.0.1-SNAPSHOT.jar --spring.main.show-banner=false
spring.main.show-banner=false //application.properties
spring: //application.yml main: show-banner: false프로퍼티 설정법과 우선순위(상단이 가장 높다)
1. 명령줄 인자 2. java:comp/env에서 얻는 JNDI속성 3. jvm 시스템 프로퍼티
4. 운영체제 환경 변수 5. random.*로 시작하는 프로퍼티 때문에 무작위로 생성된 값
6. 애플리케이션 외부에 있는 application.properties(yml) 7. 내부 application.properties(yml)
8. @PropertySource로 지정된 프로퍼티 소스 9. 기본 프로퍼티
properties yml은 하위디렉토리의 우선순위가 높고 yml이 높다
템플릿 캐싱 비활성화
$java -jar build/libs/readinglist-0.0.1-SNAPSHOT.jar --spring.thymeleaf.cache=false
spring: thymeleaf: cache: false
$export spring_thymeleaf_cache=false프리마커 spring.freemarker.cache
그루비 템플릿 spring.groovy.template.cache
벨로시티 spring.,velocity.cache
서버포트 server.port
$keytool -keystore mykeys.jks -genkey -alias tomcat -keyalg RSAserver.ssl.key-store(위치) , server.ssl.key-store-password ,server.ssl.key-password(패스워드)
logging: config: classpath: logging-config.xml //컨피그 파일 변경 path: /var/logs/ //로그백 위치 file: BookWorm.log //파일이름 level: root: WARN //로그 레벨 org: springframework: security: DEBUG //스프링시큐리티 로그 레벨 spring: datasource: url: jdbc:mysql://localhost/readinglist username: dbuser password: dbpass driver-class-name: com.mysql.jdbc.Driver //보통은 생략 문제발생시 적용 spring: datasource: jndi-name: java:/comp/env/jdbc/readingListDS@ConfigureProperties(prefix="amazon") //접두어가 amazon인 프로퍼티 주입
프로파일 구성
@Profile("production") 프로덕션일때만 해당 구성 사용
spring.profiles.active=production
프로파일에 특화된 프로퍼티 파일
application-production.properties파일과 application.properties 생성 yaml 여러 프로파일 구성
logging: level: root: INFO --- spring: profiles: development logging: level: root: INFO --- spring: profiles: production logging: level: root: INFO오류 페이지 사용자 정의 error(thymeleaf->html)뷰를 만들어서 src/main/resources/templates 디렉토리에 넣는다
오류 정보 timestamp status error exception message errors trace path
이미지는 src/main/resources/static/images나 src/main/resources/public/images에 넣는다
'개발정보 > 자바 스프링' 카테고리의 다른 글
스프링 부트 코딩 공작소 6장 그레일즈 적용 (0) | 2019.01.21 |
---|---|
스프링 부트 코딩 공작소 5장 CLI 그루비 (0) | 2019.01.21 |
스프링 부트 코딩 공작소 4장 단위테스트 (0) | 2019.01.21 |
스프링 부트 코딩 공작소 2장 첫번째 개발 (0) | 2019.01.19 |
스프링 부트 코딩 공작소 1장 시작하기 (0) | 2019.01.19 |