기존에 작업했었던 swagger-ui 연동부분을 다시 테스트 해봤다.
문제는 버전이 올라가면서 보안부분및 인터페이스 관련하여 rest 서비스를 다시 테스트해보려고 한다.
https://csksoft.tistory.com/57
예전에는 localhost:8080/swagger-ui.html 주소로 하면 swagger 화면이 보였는데...
갑자기 안보이니 꽤나 당황스러운 상황이 되었다. 좀더 찾아보니 주소를 아래 처럼 하면 된다.
이것 땜에 왜 안되지 하고 아까운 시간을 버렸음. ㅠㅠ
버전이 업드레이드 되면 수정되는 사항이 있으니 체크가 항상 필요하네요. 에휴
http://localhost:8080/swagger-ui/index.html
그럼 다시 프로젝트를 생성하여 테스트 시작 합니다.
이클립스 IDE 버전은 Version: 2021-12 을 사용함.
1. 프로젝트 생성
여기서 Spring boot 버전을 수정하는 이유는 swagger-ui 를 사용하려고 하는데... maven install 하면 오류가 발생하여 어쩔 수 없이 버전을 다운하였음. 아래 화면처럼 pom.xml 수정 변경함.
이제 maven.build를 실행합니다. 그러나 그래도 오류가 발생하는데...
이런 오류가 발생 하는데.. 아무튼 다시 해결합니다.
이 부분을 추가합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
이렇게 추가함.
그리고 여기에 두개의 파일을 추가함.
SecurityConfig.java
package com.ifapi.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// @Value("${spring.security.user.name}")
// String name;
// @Value("${spring.security.user.name}")
// String name;
@Override
protected void configure(HttpSecurity http) throws Exception {
// TODO Auto-generated method stub
http.csrf().disable().authorizeRequests().anyRequest().fullyAuthenticated().and().httpBasic();
}
@Autowired
public void configureGloval(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user") // name
.password("passwd")// "{noop}" +
.roles("ADMIN");
}
@Bean
public static NoOpPasswordEncoder passEncoder() {
return (NoOpPasswordEncoder)NoOpPasswordEncoder.getInstance();
}
}
application.yml 파일 추가
server:
servlet:
context-path : /ifapi
IfapiTest2Application.java에도 customOpenAPI 추가
지금까지 작업한 소스 프로젝트
소스에 보면 BASIC 인증을 처리하였으므로 초기에는 ID : user , PW: passwd 로 설정하였음.
로그인을 하면 아래 화면 처럼 뜹니다.
'개발일지' 카테고리의 다른 글
KEDIFACT 표준전자문서 공부 (0) | 2022.05.07 |
---|---|
SAP JCO RFC 테스트 (3) | 2022.03.24 |
Sent JSON parameter is null in WCF Service method (0) | 2021.06.13 |
The program '[14384] iisexpress.exe' has exited with code 0 (0) | 2021.06.05 |
json schema 클래스 생성 (json generator java class) (0) | 2021.06.03 |