반응형

1. 시험환경

    - Spring MVC Project

    - Spring Framework v5.2.13.RELEASE

    - Spring Security ver : Spring Framework 버전에 따름 ( ${org.springframework-version} )

 

2. 목적

    - Spring Security를 적용 후 Login 및 Logout 기능 테스트

 

3. 적용

    ① security-config.xml 주요 파라미터 설명

        - pattern : 요청 URL Root(/) 이하 모든 resource에 대하여 로그인 인증 적용

        - default-target-url : 로그인 성공시 전환 페이지

        - logout-success-url : 로그아웃 성공시 전환 페이지

        - {noop} : 암호화 인코딩을 적용하지 않음

로그인, 로그아웃 설정

4. 결론

    - 프로젝트명 이하 모든 경로 및 자원 요청시 로그인 화면으로 전환

Spring Security 로그인 폼 화면

 

    - {프로젝트}/logout 링크 연결된 버튼 클릭 시 로그아웃 화면으로 전환

Spring Security 로그아웃 폼 화면

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

    - Spring MVC Project

    - Spring Framework v5.2.13.RELEASE

    - Spring Security ver : Spring Framework 버전에 따름 ( ${org.springframework-version} )

 

2. 목적

    - Spring MVC 프로젝트에 Security를 설정한다.

    - 초기 설정 후 초기 Login 화면이 나타는 것을 확인한다.

 

3. 적용

    ① Spring Security 관련 라이브러리를 설치한다.

pom.xml

 

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-taglibs -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

 

    ② Security 설정 파일을 생성한다.

        - appServlet 우클릭 → New → Spring Bean Configuration File 메뉴 클릭

Spring Bean Configuration File 생성

 

        - Security 설정 파일명 입력

security-context.xml 파일 생성

        - security 어노테이션 추가

security 어노테이션 추가

 

        - security 설정

설정 파일

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:security="http://www.springframework.org/schema/security"
           xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <security:http auto-config="true" use-expressions="false">
        <security:intercept-url pattern="/**" access="ROLE_USER" />
    </security:http>

    <security:authentication-manager>
        <security:authentication-provider>
            <security:user-service>
                <security:user name="admin" password="{noop}admin" authorities="ROLE_ADMIN"/>
                <security:user name="user" password="{noop}user" authorities="ROLE_USER"/>
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>
</beans>

 

    ③ web.xml 설정

        - security 설정 파일을 등록한다.

security 설정 파일 등록

 

        - Security 관련 필터를 등록한다. 클라이언트 요청을 가로채서 보안 절차를 수행한다.

 

4. 결론

    - 프로젝트에 접근 요청을 하면, 스프링 시큐리티에서 제공하는 로그인 화면이 나타난다.

    - 에러 처리 및 customize 작업을 추가적으로 하자.

로그인 화면

 

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

- 윈도우 10

- STS

- Spring Boot

 

2. 목적

- 스트링부트 프로젝트를 위한 Github Repository를 생성한다.

- 스프링부트 프로젝트를 실행한다.

 

3. 적용

① SpringBootTemplate이라는 Github Repository를 생성하였다.

 

Boot 프로젝트 관리를 위한 Git Repository

 

② 생성한 Github Repository를 로컬디스크로 복제(clone) 한다.

    - 복제 대상 폴더를 프로젝트 폴더로 지정하였다.

원격 저장소 복제(clone)

 

③ STS를 실행하고 신규 Spring Boot 프로젝트를 생성한다.

    - Create new Spring Starter Project

스프링 부트 프로젝트 생성

 

④ 스프링부트 프로젝트 속성을 설정한다.

프로젝트 속성 설정

 

⑤ 의존성 라이브러리를 설정한다.

    - 여기에선 Spring Web 라이브러리만 선택하였다.

    - 추후, 자유롭게 추가 또는 제거할 수 있다.

프로젝트 의존성 라이브러리 추가

 

⑥ 생성된 신규 프로젝트의 구조이다.

스프링 프로젝트 구조

 

⑦ 스프링 프로젝트를 실행해보자.

    - 프로젝트명에서 우클릭 → Run As → Spring Boot App

스프링 부트 프로젝트 실행

 

⑧ 생성한 프로젝트를 git hub에 업데이트 하자

    - git add * : 생성한 파일을 로컬 저장소에 추가한다.

    - git status : 로컬 저장소의 상태를 확인한다.

로컬 저장소에 신규 파일 추가

 

⑨ 로컬 저장소 및 원격 저장소를 업데이트한다. (commit and push)

로컬 및 원격 저장소 업데이트

 

4. 결과

① SpringMVC 프로젝트와 다르게 View 부분을 별도로 구성해야 한다.

    - localhost:8080

스프링 부트 프로젝트 실행 결과

 

② git hub repository에 업데이트된 파일을 확인한다.

git hub repository

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

- 스프링부트

 

2. 목적

- 에러 해결

  Web server failed to start. Port 8080 was already in use.

  Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

 

3. 적용

- 가끔씩 스프링 부트를 실행하면 발생하는 에러이다.

 

4. 결과

- 8080 포트를 사용하는 프로세스를 확인하고, 해당 프로세스를 kill 해야 한다.

   netstat -ano | findstr [문자열]

   taskkill /F /PID [프로세스ID]

프로세스 강제 종료

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

- 윈도우 10

- Visual Studio Code

- Spring Boot

 

2. 목적

- Visual Studio Code를 이용하여 Spring Boot 프로젝트를 시작한다.

- Git Hub와 연동하여 Spring Boot 프로젝트를 시작한다.

 

3. 적용

① Git Hub 계정에 로그인하여 Remote Repository를 생성한다.

Spring Boot 프로젝트

 

② 원격저장소(Remote Repository)를 로컬저장소(Local Repository)에 복제(clone)한다.

git clone

 

③ Visual Sudio Code를 실행하여 프로젝트를 생성한다.

    - Ctrl + Shift + p

Maven으로 Spring Boot 프로젝트 생성

 

④ 프로젝트 생성에 필요한 설정을 진행한다.

Spring Boot 버전
개발 언어
Package 이름 설정
Artifat ID 설정
배포 패키지 선택
자바 버전 선택
의존성 라이브러리 선택

 

⑤ 프로젝트 폴더를 생성한다.

프로젝트 폴더 생성
Open 클릭

 

⑥ src/main/resources/static/index.html 파일 생성 후 <F5> 단축키로 프로젝트를 실행한다.

index.html

 

4. 결과

프로젝트 실행 결과

반응형
반응형

1. 시험환경

- 스프링 STS

 

2. 목적

- 스프링 프로젝트에 log4jdbc-log4j2-jdbc4.1 라이브러리를 설치한다.

- 스프링에서 DB 처리 작업 시, DB 로그를 확인할 수 있게 적용한다.

 

3. 적용

① pom.xml에서 의존성 라이브러리 설치

<!-- mybatis log4jdbc-log4j2 라이브러리 -->
<dependency>
       <groupId>org.bgee.log4jdbc-log4j2</groupId>
       <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
       <version>1.16</version>
</dependency>

 

② src/main/resources/log4jdbc.log4j2.properties 파일생성 및 내용 추가

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

 

src/main/resources/logback.xml 파일 생성 및 내용 추가

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
       <include resource="org/springframework/boot/logging/logback/base.xml"/>

       <!-- log4jdbc-log4j2 -->
       <logger name="jdbc.sqlonly" level="INFO"/>
       <logger name="jdbc.sqltiming" level="INFO"/>
       <logger name="jdbc.audit" level="WARN"/>
       <logger name="jdbc.resultset" level="INFO"/>
       <logger name="jdbc.resultsettable" level="INFO"/>
       <logger name="jdbc.connection" level="INFO"/>
</configuration>

 

④ src/main/resources/log4j.xml 파일에 내용 추가

<!-- SQL Logger -->
<logger name="jdbc.sqltiming" additivity="false">
       <level value="warn" />
       <appender-ref ref="console"/>
</logger>

<logger name="jdbc.sqlonly" additivity="false">
       <level value="info"/>
       <appender-ref ref="console"/>
</logger>

<logger name="jdbc.audit" additivity="false">
       <level value="warn"/>
       <appender-ref ref="console"/>
</logger>

<logger name="jdbc.resultset" additivity="false">
       <level value="warn" />
       <appender-ref ref="console"/>
</logger>

<logger name="jdbc.resultsettable" additivity="false">
       <level value="info"/>
       <appender-ref ref="console"/>
</logger>

 

ⓢ DB 연동 부분에 log4jdbc를 추가한다. (보통, root-context.xml 파일에서 설정)

<!-- MySQL 연결 설정 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
        <property name="url" value="jdbc:log4jdbc:mysql://localhost:3306/mvcmysql?characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
        <property name="username" value="root"/>
        <property name="password" value="1q2w3e"/>
    </bean>

 

4. 결과

   - 스프링에서 DB 작업시, DB 로그를 확인할 수 있다.

DB 로그 확인

 

 

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

- 스프링 STS

 

2. 목적

- log4j.xml 파일 경고 문구 디버깅

  The file cannot be validated as the XML definition.

  Create the DTD file or configure an XML catalog for this DTD.

 

3. 적용

① Spring MVC 프로젝트만 생성하였는데, log4j.xml에서 빨간줄 경고가 발생하였다.

log4j.xml 파일 내 경고 표시

 

4. 결과

   - 해결방법은 간단하다. DOCTYPE 태그를 아래와 같이 대체하였다.

     <!DOCTYPE log4j:configuration SYSTEM

     "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">

DOCTYPE 태그 변경 후

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

- 스프링 STS

 

2. 목적

- web.xml 파일 에러 디버깅

- cvc-id.3: A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-
 app', but this element does not have a simple type.

 

3. 적용

① Spring MVC 프로젝트만 생성하였는데, web.xml에서 빨간줄 에러가 발생하였다.

web.xml 에러

4. 결과

   - 해결방법은 간단하다.

   - web-app 태그에서 java를 대문자로 변경한다.

JAVA 대문자 변경

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형

+ Recent posts