我有一个通过X509验证的API。但是,我需要从身份验证中绕过我的执行器健康检查endpoint,这样我就可以在没有客户端证书的情况下进行健康检查。
我意识到,这可以通过使用不同的端口来实现,用于执行器endpoint将命中的服务器和管理。
我的application.yml配置如下:
server:
port: 9000
ssl:
key-store: classpath:keystore.jks
key-store-password: password
key-password: password
enabled: true
trust-store: classpath:truststore.jks
trust-store-password: password
client-auth: need
management:
server:
port: 9010
ssl:
enabled: false
security:
enabled: false
我的问题是,即使使用这种配置,管理endpoint也不是我可以访问健康endpoint的地方。http://localhost:9010/health-->这不起作用
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.x509()
.subjectPrincipalRegex("CN=(.*?)(?:,|$)")
.userDetailsService(userDetailsService())
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.NEVER)
.and()
.csrf().disable();
}
@Bean
public UserDetailsService userDetailsService() {
return new UserDetailsService() {
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
if (username.equals("user")) {
return new User(username, "", AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER"));
}
throw new UsernameNotFoundException("User not found!");
}
};
}
我的POM中有Spring引导执行器依赖关系。我不明白为什么我的管理端口不工作。
有什么建议吗?
我发现这里出了什么问题。这是spring boot依赖关系。我正在使用Spring-boot-acture,当我将其改为Spring-boot-starter-acture,管理端口开始监听我配置的端口。然后禁用了该端口上的SSL身份验证。在下面提供我的配置,以便对其他人有帮助:
management:
server:
port: 8000
ssl:
enabled: false
server:
port: 9000
ssl:
key-store: classpath:keystore.jks
key-store-password: password
key-alias: alias
key-password: password
enabled: true
trust-store: classpath:truststore.jks
trust-store-password: password
client-auth: need
现在,我可以通过端口8000上的http访问我的执行器endpoint(如health),并通过具有有效客户端证书的https访问端口9000上的应用程序rest API。
我有一个这样的应用程序工作流程 (A) 用户代理(浏览器) 假设应用服务器(B)是一个SAML服务提供者,user@domain使用Web浏览器SSO配置文件从浏览器(A)到应用服务器(B)进行身份验证。 在(B)上运行的应用程序如何向user@domain.com的REST服务(C)进行身份验证?(假设B和C都是同一IdP上的SAML SP。) 如果浏览器只是对B和C进行AJAX调用,那么就很简
我需要对以下URL执行请求: http://[USERNAME]:[PASSWORD]@[SERVER_IP]:[PORT]/some/path/to/some/file 但是最终生成的URL被视为无效,因为它包含两次:字符。有什么解决办法吗? 这就是我所尝试的:
我想以集中管理的安全方式将EKS中的一些网络应用程序公开到互联网。 在AWS中,使用ALB很好,例如它允许您终止TLS并使用Cognito添加身份验证。(见此处) 要预配ALB并将其连接到应用程序,有aws-load-balancer-控制器。它工作正常,但它需要每个应用程序/入口配置一个新的ALB: 我希望有一个中央定义良好的ALB,所有的应用程序都不需要再关心这个了。 我的想法是拥有一个常规的
问题内容: 为服务器端路由验证用户的最佳方法(最安全,最简单)是什么? 软件/版本 我使用的是最新的Iron Router 1. 和Meteor 1. ,首先,我使用的是Accounts-password。 参考代码 我有一个简单的服务器端路由,可将pdf呈现到屏幕上: 两者/routes.js 举例来说,我想做些类似于该SO答案建议的操作: 在服务器上: 然后在客户端代码中: 但是,即使我以某种
任务:将Kerberos active directory身份验证添加到不安全的报告和数据操作桌面应用程序。此应用程序是。。。 用Stackless Python 2.7编写 使用Twisted进行客户端-服务器交互 客户端编译为exe并在Windows上运行 服务器在Linux(红帽)上运行 目前,我们从用户帐户中提取Windows网络ID(登录名)并传递到服务器,服务器会查找用户配置为具有的权
我正在尝试使用ServerEvents设置servicestack。我已经为ServerEventsFeature添加了插件。我正在使用Javascript服务器事件客户端,我尝试了一个简单的示例,在用户经过身份验证后在客户端上执行此操作。 在apphost文件上: 要向我正在呼叫的客户端发送事件,请执行以下操作: 我成功地在客户端上的show通知功能上接收到它。 然而,订阅服务仍然存在。disp