애플리케이션 보안 설정하기
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 RSA
server.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에 넣는다
블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,