Java SpringBoot公共匹配器
我有一个带有此映射的Spring Boot应用程序:Java SpringBoot公共匹配器,java,spring,spring-boot,spring-mvc,spring-security,Java,Spring,Spring Boot,Spring Mvc,Spring Security,我有一个带有此映射的Spring Boot应用程序: @GetMapping(值={”/“,}) 公共字符串主页(模型){ } 及 localhot:8080 localhost:8080/ localhost:8080/ localhost:8080/。 重定向到/,但不 localhost:8080/... 在WebSecurityConfig中,我仅有的一个公共匹配器是:/ 我想限制对localhost:8080/和localhost:8080/。 在这里: 我举了一个与你类似的简
@GetMapping(值={”/“,})
公共字符串主页(模型){
}
及
localhot:8080
localhost:8080/
localhost:8080/
localhost:8080/。
/
,但不
localhost:8080/...
在WebSecurityConfig
中,我仅有的一个公共匹配器是:/
我想限制对localhost:8080/
和localhost:8080/。
在这里:
我举了一个与你类似的简单例子。我正在使用curl(不是web浏览器)进行测试,结果如下:
内部服务器错误localhost:8080/
请求错误localhost:8080/。
未找到终结点localhost:8080/…
我认为当您键入
localhost:8080/
或localhost:8080/)时,您的浏览器实际上是在请求localhost:8080/。
您的spring boot应用程序没有重定向,这是因为
是别名当前目录,是父目录,而…
代表具有该名称的资源。
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final UserSecurityService userSecurityService;
private final Environment env;
private static final String SALT = "fd&l23j§sfs23#$1*(_)nof";
public WebSecurityConfig(UserSecurityService userSecurityService, Environment env) {
this.userSecurityService = userSecurityService;
this.env = env;
}
@Bean
public BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(12, new SecureRandom(SALT.getBytes()));
}
@Override
protected void configure(HttpSecurity http) throws Exception {
CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
encodingFilter.setEncoding("UTF-8");
encodingFilter.setForceEncoding(true);
http.addFilterBefore(encodingFilter, CsrfFilter.class);
http.csrf().disable();
http
.authorizeRequests()
.antMatchers(publicMatchers()).permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login.html")
.defaultSuccessUrl("/advertise.html")
.failureUrl("/login.html?error").permitAll()
.and()
.logout()
.permitAll()
.and()
.rememberMe()
.key("uniqueAndSecret");
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userSecurityService)
.passwordEncoder(passwordEncoder());
}
private String[] publicMatchers() {
final String[] PUBLIC_MATCHERS = {
"/webjars/**",
"/css/**",
"/fonts/**",
"/images/**",
"/img/**",
"/js/**",
"/home.html",
"/links/**",
"/links.html",
"/favicon.ico",
"/forgotmypassword.html",
"/directory/**",
"/",
"/error/**/*",
"/h2-console/**",
ForgotMyPasswordController.FORGOT_PASSWORD_URL_MAPPING,
ForgotMyPasswordController.CHANGE_PASSWORD_PATH
};
return PUBLIC_MATCHERS;
}
}