gpt4 book ai didi

java - Spring-Boot:在 Java 代码配置(不是 XML)中指定 REALM(安全约束和角色)和 CLIENT-CERT 身份验证?

转载 作者:行者123 更新时间:2023-11-28 22:19:40 24 4
gpt4 key购买 nike

我一直在尝试让 CLIENT-CERT 领域认证基于以下链接工作:

http://twoguysarguing.wordpress.com/2009/11/03/mutual-authentication-with-client-cert-tomcat-6-and-httpclient/

但是,尽管使用了下面的 web.xml

<web-app>
<security-constraint>
<web-resource-collection>
<web-resource-name>Demo App</web-resource-name>
<url-pattern>/secure/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>secureconn</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Demo App</realm-name>
</login-config>
<security-role>
<role-name>secureconn</role-name>
</security-role>
</web-app>

为了让 HTTPS 正常工作,我使用了以下链接:

http://thoughtfulsoftware.wordpress.com/2014/01/05/setting-up-https-for-spring-boot/

因此我有这样的东西:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.addContextCustomizers((TomcatContextCustomizer) customizer ->
{
//this is empty at the moment
});


factory.addConnectorCustomizers((TomcatConnectorCustomizer) (Connector con) -> {
//...configuration
});
return factory;

我也有这个来启用 Spring Security:

@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//...some configuration from the sample at https://spring.io/guides/gs/securing-web/
}
...
}

在我看来,嵌入式 Tomcat 并不真正关心 web.xml 内容,所以我猜我需要从 Java 配置它,可能使用 Context Customizer。我没有找到任何资源来做这件事,而且大多数参数都是 String,所以我猜我要么做错了什么,要么只是没有记录,或者我正在查看错误的地方。

所以我的问题是,

http://java.boot.by/wcd-guide/ch05s03.html

如果不使用 web.xml,应该如何使用 Spring-Boot 指定领域、安全约束和登录配置/身份验证方法/url 模式?

替代问题,

如果可以让Spring Boot中的内嵌Tomcat使用web.xml,怎么做到的?

编辑:实际上,考虑到我正在尝试使用 CLIENT-CERT 身份验证方法,这可能是 httpSecurity.x509() 样本更少......我迷路了。

最佳答案

这是在容器级别使用基于证书的身份验证的示例:https://github.com/SpringOne2GX-2014/microservice-security/tree/master/certs (它更多地是关于 server.xml 中的内容,而不是非嵌入式容器中的 web.xml 中的内容)。该应用程序是安全的。如果您添加一个 WebSecurityConfigurationAdapter 并调用 http.x509(),您还将获得经过身份验证的主体变成一个 Authentication 并在通常情况下可用Spring Security 的位置。

关于java - Spring-Boot:在 Java 代码配置(不是 XML)中指定 REALM(安全约束和角色)和 CLIENT-CERT 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26589484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com