javaspring启动框架上的未知行为

r8xiu3jd  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(318)

有人能解释一下,为什么spring boot在访问指定的上下文路径时会向我发送一个登录表单作为默认http响应:


# configuring Tomcat Server Host

server.address = 127.0.0.1
server.tomcat.threads.max = 20
server.servlet.context-path=/webapp

我正在通过键入以下内容访问此网站:http://127.0.0.1:8080/网络应用程序
我的文件结构如下所示:

|-.idea
|-.mvn
|-src
   |-java
   |-resources
   |-webapp
      |-resources
      |-script
      |-styles
      |-index.html

我预期,默认情况下,在定义上下文路径时,index.html文件将作为响应发回。相反,我收到了一个登录表单,它不是我自己设计的。

btqmn9zl

btqmn9zl1#

|-.idea
|-.mvn
|-src
   |-java
   |-resources
       |-static
         |-resources
         |-script
         |-styles
         |-index.html

如果没有启用安全性,可以使用静态文件夹发布索引html。如果启用了安全层,则必须对其进行配置。

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@AllArgsConstructor
public class CustomWebSecurity extends WebSecurityConfigurerAdapter {

    private final UserService userService;
    private final ObjectMapper objectMapper;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().cors().and().authorizeRequests()
                .antMatchers(HttpMethod.POST, ChallengeConstant.AUTHORIZE_ENDPOINT).permitAll()
                .antMatchers(HttpMethod.POST, ChallengeConstant.TOKEN_ENDPOINT).permitAll()
                .antMatchers(HttpMethod.GET, "/*").permitAll()
                .antMatchers(HttpMethod.GET, "/assets/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .addFilterBefore(new JWTFilter(userService, objectMapper), UsernamePasswordAuthenticationFilter.class)
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
    }
}

下面是一个配置示例。
下面两行将跳过索引html和资产文件夹的身份验证流。

.antMatchers(HttpMethod.GET, "/*").permitAll()
.antMatchers(HttpMethod.GET, "/assets/**").permitAll()
xienkqul

xienkqul2#

SpringBoot安全库自动添加登录表单,并在控制台中为用户名提供密码-“user”。这是Spring Security 的默认行为。如果您想配置您需要的用户名和密码,
创建将扩展 WebSecurityConfigurerAdapter Spring的安全。然后:
覆盖它是 configure 方法,并在内存或数据库中提供用户名和密码。https://howtodoinjava.com/spring-security/

相关问题