Я создал два приложения, App-Server и App-Client.
Сервер приложений - это Spring Boot 2 и Spring Security OAuth2.
Приложение-клиент Angular JS 6.
Когда я запускаю оба приложения по отдельности, они работают нормально, но когда я пытался использовать App-Server для обслуживания статического контента (app-client), он не работает.
Я использую приведенный ниже код для добавления статических файлов в App-Server.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static/</outputDirectory>
<resources>
<resource>
<directory>${basedir}/../app-client/dist/app-client</directory >
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
My Web Security выглядит как
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
@Order(Ordered.HIGHEST_PRECEDENCE)
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.csrf().disable()
.authorizeRequests()
.antMatchers("/about","/signup","/oauth/token","/users/otp").permitAll()
.anyRequest().authenticated()
.and().logout().logoutSuccessUrl("/").permitAll()
.and()
.httpBasic()
.realmName(REALM);
}
//Some other code .....
}
Любой мой ResourceServerConfig выглядит ниже
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter
{
@Autowired
private TokenStore tokenStore;
@Override
public void configure(ResourceServerSecurityConfigurer resources)throws Exception{
resources.resourceId("app-server-api").tokenStore(tokenStore);
}
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/","/users/otp", "/index.html","/resources/**","/images/**")
.permitAll()
.antMatchers("/v1/**")
.authenticated();
}
}
Когда я пытался ударить любой статический файл, я не отвечал.
Однако в местном я вижу
Не найдено сопоставление для HTTP-запроса с URI [/api/index.html] в
ДиспетчерСервлет с именем «ДиспетчерСервлет»
...