我在cobertura-maven-plugin中看到,我可以使用excludes和配置我的仪器ignores.这两者有什么区别?
我StepVerifier用来测试值:
@Test
public void testStuff() {
Thing thing = new Thing();
Mono<Thing> result = Mono.just(thing);
StepVerifier.create(result).consumeNextWith(r -> {
assertEquals(thing, r);
}).verifyComplete();
}
Run Code Online (Sandbox Code Playgroud)
我现在要做的是测试单声道中没有项目.像这样:
@Test
public void testNoStuff() {
Mono<Thing> result = Mono.empty();
StepVerifier.create(result)... // what goes here?
}
Run Code Online (Sandbox Code Playgroud)
我想测试Mono实际上是空的.我怎么做?
我对从 Helm 图表生成 docker-compose.yaml 文件感兴趣。有没有好的方法或工具来做到这一点?
我意识到这与大多数人所做的相反。为什么我想这样做:
任何人都可以建议如何执行此操作,或者针对开发计算机上遇到的时间/资源问题提出不同的解决方案吗?
我最近将 Keycloak 升级到版本 9,在 Docker 中运行时,我在附加远程调试器时遇到问题。我怀疑这与Keycloak底层升级到Java 9+有关。
我得到的错误是:
handshake failed - connection prematurally closed
我在 Docker 中正确映射了端口(我可以运行 Keycloak 版本 7 并且它连接得很好)。
我需要制作一个 Liquibase 迁移脚本,仅当尚未添加主键时才将主键添加到数据库表中。这样做的最佳方法是什么?它会是这样的:
<changeSet id="...">
<preConditions>
(What goes here? Should I use <sqlCheck>, or is there a better alternative?)
</preConditions>
<addPrimaryKey tableName="foo" columnNames="bar" constraintName="foo_pk" />
</changeSet>
Run Code Online (Sandbox Code Playgroud) 假设我有一个存储库,其中包含一个findAll()返回Iterableof 的方法State,其中State一个类表示一个具有两个字段(带有getter/setter)的US状态:name和population.
我想得到State我的Flux中所有s 的总体字段的总和.我从Iterable创建一个Flux,如下所示:
Flux f = Flux.fromIterable(stateRepo.findAll());
Run Code Online (Sandbox Code Playgroud)
我有我的Flux,但我不知道总结其价值的好方法.我尝试过类似的东西
int total = 0;
f.map(s -> s.getPopulation()).subscribe(p -> total += v);
return total;
Run Code Online (Sandbox Code Playgroud)
但是,编译器说总的"应该是最终的或有效的最终".添加final显然不起作用,因为我正在尝试添加它.
如何在Flux上进行求和(或任何其他聚合函数)?
我想使用Micrometer记录异步方法最终发生时的执行时间。有推荐的方法吗?
示例:Kafka回复模板。我想记录实际执行sendAndReceive调用(在请求主题上发送消息并在回复主题上接收响应)所花费的时间。
public Mono<String> sendRequest(Mono<String> request) {
return request
.map(r -> new ProducerRecord<String, String>(requestsTopic, r))
.map(pr -> {
pr.headers()
.add(new RecordHeader(KafkaHeaders.REPLY_TOPIC,
"reply-topic".getBytes()));
return pr;
})
.map(pr -> replyingKafkaTemplate.sendAndReceive(pr))
... // further maps, filters, etc.
Run Code Online (Sandbox Code Playgroud)
就像是
responseGenerationTimer.record(() -> replyingKafkaTemplate.sendAndReceive(pr)))
Run Code Online (Sandbox Code Playgroud)
在这里不会工作;它仅记录创建所需的时间Supplier,而不是实际的执行时间。
我想知道是否可以将 Spring Security 配置为在 OAuth 登录过程中使用外部托管的登录页面。没关系,这不是一个好主意,并且违背了 OAuth 的目的之一(将登录/凭据/身份验证问题与客户端和资源服务器分开)。
我有以下设置:
@EnableAuthorizationServer)我寻求的OAuth流程如下:
我可以配置 Spring Security 来指定绝对 URL,以便重定向到 SPA 的登录页面:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors()
.and()
... config ...
.and()
.formLogin()
.loginPage("http://angular-spa-app/login")
.loginProcessingUrl("/login")
.permitAll();
}
Run Code Online (Sandbox Code Playgroud)
当我完成此流程时,我看到第一个请求发送到oauth/authorize?state=...&nonce=...&etc...,然后重定向到http://angular-spa-app/login。但是当我登录时,Spring …
我有一个包含以下代码段的 OpenAPI 规范文档(我无法控制):
servers:
- url: http://www.[someservice].com/api
Run Code Online (Sandbox Code Playgroud)
我正在使用这个 OpenAPI 文档来生成我在我的 Angular SPA 中使用的 typescript-angular 客户端。当我在生产中运行它时,这很好用(我的 api 后端可以通过提供的 url 访问)。
我想使用http://localhost:1234/api进行本地测试。如何使用 openapi-generator 覆盖基本路径,以便我可以生成在本地工作的客户端代码?
我正在将 Keycloak 作为身份代理运行,并配置了一个身份提供程序。
当具有来自 IdP 的有效令牌的用户首次访问我的应用程序时,系统会使用令牌中的信息在 Keycloak 中创建该用户。这包括电子邮件、用户名、名字和姓氏。然后,Keycloak 会使用该用户信息发出其令牌。
当同一用户随后登录时,Keycloak 令牌是根据 Keycloak 数据库中的用户信息制作的。
我的问题是:如果用户在 IdP 上更改了姓氏,如何配置 Keycloak 自动更新其记录以匹配 IdP 令牌上的信息?
由于某种原因,当我运行一些网真命令时,会弹出一个浏览器窗口,提示我登录大使云。但我没有使用大使云。
除了浏览器窗口之外,该命令还显示一条消息来说明这一点。像这样:
~ % telepresence intercept my-k8s-service
Launching browser authentication flow...
Run Code Online (Sandbox Code Playgroud)
我如何禁用此功能?
我的问题是关于 Spring 如何java.util.Map通过@Autowired. 具体来说,我看到的行为是类中自动装配的 bean 的值实际上是一个包含一个键值对的 Map,其中键是 bean 的名称,值是我打算注射。我预计 Spring 会直接注入地图。
这是我自动装配 bean 的类:
@Component
public class SpringMapParent {
@Autowired
@Qualifier("theMap")
private Map<String, Object> theMap;
...
}
Run Code Online (Sandbox Code Playgroud)
我theMap在 Spring Java 配置中定义如下:
@Configuration
@ComponentScan
public class SpringMapConfiguration {
@Bean("theMap")
public Map<String, Object> getTheMap() {
Map<String, Object> theMap = new HashMap<String, Object>();
return theMap;
}
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,地图大小为 0。
我用于测试此注入的单元测试失败:
@ContextConfiguration(classes = {SpringMapConfiguration.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringMapIT {
@Autowired
private SpringMapParent springMapParent;
@Test
public void testSpringMapParentAutowiredCorrectly() …Run Code Online (Sandbox Code Playgroud) 我创建了一个自定义 Keycloak 端点(使用自定义领域资源提供程序工厂)。我可以使用 Postman 发布到此端点,并且它按预期工作。当我尝试从我的 SPA(Angular)应用程序发布到它时,我收到 CORS 错误。
我的 Web 源在我的 Keycloak 客户端配置中配置正确。但这些似乎不适用于我的自定义端点。
如何配置端点以允许跨源 POST?
java ×4
keycloak ×3
ambassador ×1
asynchronous ×1
cobertura ×1
cors ×1
debugging ×1
kubernetes ×1
liquibase ×1
micrometer ×1
spring ×1
spring-kafka ×1
telepresence ×1
unit-testing ×1