小编Jav*_*ict的帖子

启用身份验证后,如何配置Spring Boot管理客户端?

我正在尝试使用spring boot admin(服务器+客户端)设置示例应用程序,并且遇到身份验证问题。

在客户端的管理/执行器端点上启用spring安全性后,spring-boot-admin服务器似乎无法与客户端进行通信-通过Web浏览器登录到Admin界面会导致连续的身份验证循环弹出窗口并提示输入用户名/密码。点击取消将在页面上显示HTTP 401错误。

这是在客户端运行的配置:

management.security.enabled = false

security.basic.enabled = true

security.user.name =测试

security.user.password =测试

spring.boot.admin.url = http:// localhost:9081 / admin

spring.boot.admin.username =管理员

spring.boot.admin.password =管理员

这会:

  • 禁用Spring Boot的管理/执行器资源的安全性
  • 为所有其他资源启用安全性(HTTP基本身份验证-用户:test,密码:test)
  • 使用URL http:// localhost:9081 / admin(HTTP基本身份验证-用户:admin,密码:admin)在启动时注册spring-admin客户端

我猜想spring boot admin应用程序不支持与安全客户端的通信,因为我看不到任何配置属性,这些属性允许在注册客户端时传递信息。

有没有人绕过这个限制,如果可以,怎么办?我不想让执行器端点“向公众开放”这么说,即使它们实际上只是暴露在公司内部网络中。

authentication spring basic-authentication spring-boot

5
推荐指数
1
解决办法
9857
查看次数

JPA - 如何使用规范和@EmbeddedId 进行查询?

我正在使用使用规范来检索实体的 JPA 查询。当我执行查询时,我收到错误:

org.springframework.data.mapping.PropertyReferenceException:找不到类型任务的属性名称!

我查看了之前在此站点上提出的类似问题的答案,并尝试对我的代码进行建模以遵循推荐的模式,但代码仍然失败。

当我使用调试器单步执行代码时,条件构建器中的扩展路径返回嵌入的 ID 类,但是当在查询中实际使用规范时,看起来该属性正在应用于基本实体类。

我错过了一些明显的东西吗?

这是实体类:

@Entity
@Table(name = "TASKS")
public class Task implements Serializable {

    @EmbeddedId
    private TaskId id;

    ...more attributes, getters and setters
}
Run Code Online (Sandbox Code Playgroud)

这是嵌入的 ID 实体类:

@Embeddable
public class TaskId implements Serializable {

    @Column(name = "NAME", length = 100)
    private String name;

    ...more attributes, getters and setters
}
Run Code Online (Sandbox Code Playgroud)

这是与嵌入的 id 'name' 属性匹配的规范构建器:

public class HasTaskNameSpec {

    private HasTaskNameSpec() {
    }

    public static Specification<Task> equals(String name) {
        return (root, query, criteriaBuilder) -> {
            return …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data-jpa jpa-criteria

5
推荐指数
2
解决办法
5610
查看次数