小编Evg*_*yst的帖子

在 springdoc-openapi-ui 中为不记名令牌认证 (JWT) 启用授权按钮

如何在springdoc-openapi-ui (OpenAPI 3.0 /swagger-ui.html) 中为不记名令牌认证启用“授权”按钮,例如 JWT。

Spring@Controller@Configuration类需要添加哪些注解?

授权按钮

不记名令牌认证的授权表

java spring jwt openapi springdoc

23
推荐指数
3
解决办法
1万
查看次数

部署在代理后面的 springdoc-openapi-ui (Swagger UI) 中的“生成的服务器 url”错误

带有 springdoc-openapi-ui (Swagger UI) 的 Spring Boot 2.2 应用程序运行 HTTP 端口。该应用程序部署到 Kubernetes,并通过 Ingress 将 HTTPS 请求从集群外部路由到服务。

在这种情况下,可用的 Swagger UIhttps://example.com/api/swagger-ui.html有错误的“生成的服务器 url”- http://example.com/api。虽然应该如此https://example.com/api

虽然 Swagger UI 通过 HTTPS 访问,但生成的服务器 URL 仍然使用 HTTP。

swagger swagger-ui spring-boot openapi springdoc-openapi-ui

22
推荐指数
4
解决办法
4万
查看次数

在 Java 测试中使用 Podman 测试容器

是否可以在 Java 测试中将 Testcontainers 与 Podman 一起使用?

截至 2022 年 3 月,Testcontainers 库未将已安装的 Podman 检测为有效的 Docker 环境。

Podman 可以在采用 Apple 芯片的 MacOS(本地开发环境)和 Linux x86_64(CI/CD 环境)上替代 Docker 吗?

testcontainers podman testcontainers-junit5

14
推荐指数
3
解决办法
2万
查看次数

基于用户或组成员身份的微服务架构中的实体级访问限制

在系统中,可能存在受限制的数据.有时,应根据用户或组成员身份轻松限制或授予对特定实体的访问权限.

在微服务架构中实现这一点的最佳方法是什么?

#1

访问控制,管理权限等是微服务器本身的责任吗?开发人员必须为每项服务实现访问控制,存储和更新权限.似乎不是非常强大且容易出错的方法.

#2

创建专用的微服务处理权限管理?其他微服务器将调用此服务,以在返回结果之前检查每个实体和过滤实体的访问权限.集中式权限存储和管理是一个优势,但微服务必须为每个实体调用"权限服务",以检查可能对性能产生负面影响的访问权限.开发人员仍然必须将访问检查集成到他们的服务中,从而为错误留出空间.

#3

使API网关或服务网格的访问控制责任.可以考虑一种自动过滤所有服务响应的实现.但是在微服务返回实体列表的情况下,应该检查每个实体的权限.仍然是潜在的性能问题.

考虑以下合成示例.医疗保健系统处理测试结果,X射线图像等.健康信息非常敏感,不应披露.

测试结果应仅适用于:

  • 患者
  • 医生
  • 实验室

主治医生可能会将患者送到另一位专科医生处.新医生也应该可以访问测试结果.因此可以动态授予访问权限.

因此,每个实体(例如测试结果,X射线图像)都有一组规则允许用户和组访问它.

想象一下,有一个名为"测试结果服务"的微服务处理测试结果.它应该负责访问控制,管理权限等吗?或者应该提取权限管理来分离微服务?

医疗保健系统也可以处理对医生的访问.有关患者就诊的信息应提供给:

  • 患者
  • 医生
  • 诊所接待员

这是根据用户或组成员身份要求实体级访问限制的不同实体类型的示例.

当需要实体级访问控制时,很容易想象更多的例子.

architecture security permissions microservices

10
推荐指数
1
解决办法
2641
查看次数

在 springdoc-openapi-ui 中启用授权按钮进行基本身份验证

如何在springdoc-openapi-ui (OpenAPI 3.0 /swagger-ui.html) 中启用“授权”按钮以进行基本身份验证。

Spring@Controller@Configuration类需要添加哪些注解?

授权按钮

基本身份验证的授权表单

java spring swagger-ui openapi springdoc

10
推荐指数
1
解决办法
6472
查看次数

Docker 容器中的 Wildfly 未启动

我正在尝试访问在 Windows 10 专业版中的 Docker 容器上运行的 Wildfly 的欢迎页面。这就是我所做的:

拉取图像:

docker pull jboss/wildfly
Run Code Online (Sandbox Code Playgroud)

运行 Wildfly 容器(这很好用,在 Wildfly 日志中我可以看到它正确启动):

docker run -it -p 8080:8080 jboss/wildfly
Run Code Online (Sandbox Code Playgroud)

查找容器 ID:

docker ps
Run Code Online (Sandbox Code Playgroud)

检查 IP 地址:

docker inspect -f "{{ .NetworkSettings.IPAddress }}" cac63ed21d78
Run Code Online (Sandbox Code Playgroud)

IP 地址是172.17.0.2,在浏览器中我转到http://172.17.0.2:8080/但浏览器挂起并超时。我错过了什么?

更新

我也尝试过127.0.0.1:8080,但它也不起作用

更新2

控制台日志:

docker --version

#Docker version 19.03.1, build 74b1e89e8a

docker run hello-world

#Hello from Docker!

docker run --detach --publish 8080:80 --name webserver nginx

#Unable to find image 'nginx:latest' locally
#latest: Pulling from library/nginx …
Run Code Online (Sandbox Code Playgroud)

java jboss docker wildfly devops

9
推荐指数
1
解决办法
1778
查看次数

使用 ADFS IdP 进行单点注销的正确 LogoutRequest

我成功使用 OneLogin java-saml 库进行 SAML SSO。但 Active Directory 联合身份验证服务 (ADFS) 的 SLO(单点注销)存在问题。该库创建的 LogoutRequest 被 ADFS 拒绝,但被 SimpleSAMLphp IdP 接受。我在创建 LogoutRequest 时通过了这两者nameId,并sessionIndex在响应中从 ADFS 接收到了这些信息。

以下是生成的请求和收到的响应:

验证请求:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="ONELOGIN_a80567d6-8957-482b-90e9-99d1b40ec8b1" Version="2.0" IssueInstant="2017-05-31T15:43:07Z" ProviderName="My Company Service Provider" Destination="https://wintest.mycompany.test/adfs/ls/" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="https://localhost:8443/builder/login_check_sso">
   <saml:Issuer>http://localhost:4568/sso/saml/metadata</saml:Issuer>
   <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true" />
   <samlp:RequestedAuthnContext Comparison="exact">
      <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
   </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
Run Code Online (Sandbox Code Playgroud)

回复:

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified" Destination="https://localhost:8443/builder/login_check_sso" ID="_f5ea3a59-92f9-4b22-aaf0-36ed392df051" InResponseTo="ONELOGIN_a80567d6-8957-482b-90e9-99d1b40ec8b1" IssueInstant="2017-05-31T15:43:10.158Z" Version="2.0">
   <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://wintest.mycompany.test/adfs/services/trust</Issuer>
   <samlp:Status>
      <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
   </samlp:Status>
   <Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_6f6daef8-f0b5-4437-8e35-ae44ffc48cfe" IssueInstant="2017-05-31T15:43:10.158Z" Version="2.0">
      <Issuer>http://wintest.mycompany.test/adfs/services/trust</Issuer>
      <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
         <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> …
Run Code Online (Sandbox Code Playgroud)

adfs saml saml-2.0 onelogin

8
推荐指数
1
解决办法
9392
查看次数

使用 Spring Security 允许匿名访问 springdoc-openapi-ui

如何在 Spring Security 保护的 Spring Boot 应用程序中允许匿名访问springdoc-openapi-ui (OpenAPI 3.0 /swagger-ui.html)?

java spring spring-security openapi springdoc

7
推荐指数
1
解决办法
3736
查看次数

为特定的 Spring Boot 测试禁用 Kafka 监听器

如何在使用 Spring Boot (2.2+) 和 Spring Kafka (2.4+) 的应用程序中禁用测试@KafkaListener中的实例?@SpringBootTest

目标是在特定测试中禁用 Kafka 侦听器,以便此类测试可以在不启动嵌入式 Kafka 代理的情况下运行。

java spring apache-kafka spring-boot spring-kafka

7
推荐指数
1
解决办法
7079
查看次数

如何使用 runnable 将 java 命令模式迁移到 PHP 7.4?

出于学习目的,我正在尝试将此 Java 命令模式示例迁移到 PHP:

https://codereview.stackexchange.com/questions/52110/command-pattern-implementation

UML图

正如@simon 所评论的那样,使用方法引用运算符,可以使代码现代化很多:

class MyCommand implements Order {
    private final Runnable action;

    public MyCommand(Runnable action) {
         this.action = action;
    }

    @Override
    public void execute() {
         action.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以创建这样的命令:

MyCommand bsc = new MyCommand(stock::buy);
MyCommand ssc = new MyCommand(stock::sell);
Run Code Online (Sandbox Code Playgroud)

我当前的 PHP 实现在这里:https : //3v4l.org/iIHn9

那么在 PHP 中实现MyCommand 类的最佳方法是什么?

php java porting command-pattern runnable

7
推荐指数
1
解决办法
244
查看次数