允许 URL 中的语言参数(Spring 引导/安全)
Allow language parameter in URL (Spring Boot / Security)
亲爱的社区,您好,
关于我的目标的详细信息:
- 在 Spring Boot 应用程序中使用 internationalization 以及 Spring Security 的身份验证机制
实际结果:
- 国际化效果很好
然后我添加了安全性:
http.authorizeRequests()
// Restrict Endpoints
.antMatchers("/login/**").hasAnyRole("admin", "member")
// Allow Forms
.antMatchers("/member/**").permitAll()
// Allow Resources
.antMatchers("/js/**").permitAll()
.antMatchers("/css/**").permitAll()
// Deny All
.anyRequest().authenticated();
}
由于 .anyRequest().authenticated()
根路径上的请求如 /?lang=de
将触发身份验证。
我尝试了什么:
http.authorizeRequests()
// Restrict Endpoints
.antMatchers("/login/**").hasAnyRole("admin", "member")
// Allow Forms
.antMatchers("/member/**").permitAll()
// Allow Resources
.antMatchers("/js/**").permitAll()
.antMatchers("/css/**").permitAll()
// Trick to allow Internationalization
.antMatchers("/*").permitAll()
// Deny All
.anyRequest().authenticated();
}
我添加了 .antMatchers("/*").permitAll()
这行得通,但它允许根路径上有很多资源。我的目标是仅允许 /?lang=de
无需身份验证。
有机会吗?
我研究过但不适应的资源:
- antMatchers Spring Security pattern with changeable URL user ID
亲切的问候
OtenMoten
嗯,终于成功了。
上面我说过我对提到的 Whosebug 链接不满意,但它仍然有效。
我添加了:
.regexMatchers("/.*lang=.*").permitAll()
http.authorizeRequests()
// Restrict Endpoints
.antMatchers("/login/**").hasAnyRole("admin", "member")
// Allow Forms
.antMatchers("/member/**").permitAll()
// Allow Resources
.antMatchers("/js/**").permitAll()
.antMatchers("/css/**").permitAll()
.regexMatchers("/.*lang=.*").permitAll()
// Deny All
.anyRequest().authenticated();
}
亲爱的社区,您好,
关于我的目标的详细信息:
- 在 Spring Boot 应用程序中使用 internationalization 以及 Spring Security 的身份验证机制
实际结果:
- 国际化效果很好
然后我添加了安全性:
http.authorizeRequests()
// Restrict Endpoints
.antMatchers("/login/**").hasAnyRole("admin", "member")
// Allow Forms
.antMatchers("/member/**").permitAll()
// Allow Resources
.antMatchers("/js/**").permitAll()
.antMatchers("/css/**").permitAll()
// Deny All
.anyRequest().authenticated();
}
由于 .anyRequest().authenticated()
根路径上的请求如 /?lang=de
将触发身份验证。
我尝试了什么:
http.authorizeRequests()
// Restrict Endpoints
.antMatchers("/login/**").hasAnyRole("admin", "member")
// Allow Forms
.antMatchers("/member/**").permitAll()
// Allow Resources
.antMatchers("/js/**").permitAll()
.antMatchers("/css/**").permitAll()
// Trick to allow Internationalization
.antMatchers("/*").permitAll()
// Deny All
.anyRequest().authenticated();
}
我添加了 .antMatchers("/*").permitAll()
这行得通,但它允许根路径上有很多资源。我的目标是仅允许 /?lang=de
无需身份验证。
有机会吗?
我研究过但不适应的资源:
- antMatchers Spring Security pattern with changeable URL user ID
亲切的问候
OtenMoten
嗯,终于成功了。
上面我说过我对提到的 Whosebug 链接不满意,但它仍然有效。
我添加了:
.regexMatchers("/.*lang=.*").permitAll()
http.authorizeRequests()
// Restrict Endpoints
.antMatchers("/login/**").hasAnyRole("admin", "member")
// Allow Forms
.antMatchers("/member/**").permitAll()
// Allow Resources
.antMatchers("/js/**").permitAll()
.antMatchers("/css/**").permitAll()
.regexMatchers("/.*lang=.*").permitAll()
// Deny All
.anyRequest().authenticated();
}