spring boot集成 Admin
- 1. spring boot admin
- 2. spring boot admin 集成 turbine(admin 2.x不支持,未实现)
- 2.1 spring boot admin client hystrix
- 2.2 spring boot admin client service
- 2.3 spring boot admin client turbine
- 2.4 spring boot admin server turbine
- 3. spring boot admin 集成 security
git地址
https://github.com/a18792721831/studySpringCloud.git
1. spring boot admin
1.1 spring boot admin server
1.1.1 创建
1.1.2 配置
详细配置见 https://codecentric.github.io/spring-boot-admin/2.2.1/
1.1.3 日志模板
1.1.4 注解
1.1.5 启动
启动eureka server以及admin-server
然后访问admin-server的端口
admin-clinet是接下来需要创建的。
选中进去还有更加详细的信息
同时在项目根路径下生成了日志文件
当然,在界面上也能看日志
还可以给不同的日志设置不同的颜色
因为admin组件集成了actuator,所以,在actuator里面的信息admin都能展示。
很强大。
展示线程活动
黄色是wait
绿色是run
甚至子线程也能展示
映射等
没有集成缓存组件,所以没有缓存。
关键性日志等
话说admin的展示很强大,也很美观,但是感觉有些重,太细了,对于生产一般好几年,这个就有些不太适用了。
1.2 spring boot admin client
1.2.1 创建
1.2.2 配置
1.2.3 日志模板
1.2.4 注解
1.2.5 启动
2. spring boot admin 集成 turbine(admin 2.x不支持,未实现)
2.1 spring boot admin client hystrix
2.1.1 创建
2.1.2 配置
2.1.3 日志模板
2.1.4 注解
2.1.5 controller
2.1.6 hystrix 配置
2.1.7 启动验证
成功熔断。
2.2 spring boot admin client service
2.2.1 创建
2.2.2 配置
2.2.3 日志模板
2.2.4 注解
2.2.5 controller
2.2.6 启动验证
熔断器正确访问。
2.3 spring boot admin client turbine
2.3.1 创建
2.3.2 配置
2.3.3 日志模板
2.3.4 注解
2.3.5 启动验证
2.4 spring boot admin server turbine
擦,看的资料太老旧了,spring cloud admin 2.x删除了这部分。。。。
3. spring boot admin 集成 security
3.1 创建
3.2 配置
server:
port: 8321
eureka:
client:
# register-with-eureka: false
# fetch-registry: false
service-url:
defaultZone: http://127.0.0.1:8761/eureka/
instance:
metadata-map:
user.name: ${admin.login.user.name}
user.password: ${admin.login.user.pswd}
logging:
level:
org:
springframework:
web:
servlet:
mvc:
method:
annotation:
RequestMappingHandlerMapping: trace
file: logs/spring-boot-admin-server.log
spring:
freemarker:
template-loader-path: classpath:/templates/
prefer-file-system-access: false
application:
name: admin-server
boot:
admin:
client:
username: ${admin.login.user.name}
password: ${admin.login.user.pswd}
instance:
metadata:
user.name: ${admin.login.user.name}
user.password: ${admin.login.user.pswd}
management:
endpoints:
web:
exposure:
include: '*'
admin.login.user.name=admin
admin.login.user.pswd=123456
admin.login.user.role=ADMIN
这里有一个诡异的问题:密码必须是password,配置其他的密码,在最终登录时,都是无效用户名密码。
基于此,尝试修改用户名,发现在其他条件不变的条件下,修改用户名是可以登录的。
修改密码则导致无法登录。
3.3 配置类
35行设置默认的url是/
38设置所有的都需要凭证
42行设置登录界面
43行设置登出界面
46行设置使用httpBasic(通过配置,应该可以实现其他的)
45、46行设置禁止csrf(不知道这个scrf是个啥)
47行设置保存用户名密码的选项
比较坑的是52行
首先给大家看下官网给出的例子:
https://codecentric.github.io/spring-boot-admin/2.2.1/#_securing_spring_boot_admin_server
对52行完全没有任何说明,给的例子里面是这样的:
发现没有,他的用户名和密码以及角色,都是在代码中硬编码了。
所以,对于官网给出的例子,我个人感觉这里硬编码不太好。
使用硬编码就必须使用user的用户名和password的密码。
(这个之前没想到官网实例还是这么坑,且没啥说明)
经过不断的测试,决定使用配置。
admin.login.user.name=admin
admin.login.user.pswd=123456
admin.login.user.role=ADMIN
然后在config里面读取配置,这样至少不是硬编码了。
还有一个疑点:
这个必须这样写,当然还有其他的几种可以选择。
有故事,不单纯。
所以,这个noop还真不是乱写的。
看这些类的名称以及操作,应该是与密码加密存储使用有关的。
仔细看看里面的操作,noop差不多就是不加密(无语。。。。)
当然,其他的我未亲自验证,这里只是一个猜测。
3.4 日志模板
3.5 注解
3.6 启动验证
这个记住用户就是在配置类里面最后一行加上去的。