小知识,大挑战!本文正在参与「程序员必备小知识」创作活动
本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。
📖前言
心态好了,就没那么累了。心情好了,所见皆是明媚风景。
“一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。
🚓将spring-boot-starter-security启动器添加到您的依赖项中:
使用
springboot-admin
对项目进行健康监控
等的操作,分两部分,server和client,server端监控client端,client端就是你的项目
ps:我们要对
admin
监控模块添加security
来进行权限过滤和一些接口控制,保证我们的admin
不光明正大的暴露在他人的眼皮底下,jasypt
则用于对yml
文件里的一些访问密码以及账号进行加盐加密操作,从而达到安全的效果,故此我们引入如下依赖,并进行配置操作。
1. 引入依赖如下:
<!--security密码-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- 引入数据库密码加密 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
2. 关于 jasypt
的加密
# jasypt 密码加密配置
jasypt:
encryptor:
# 加密盐值建议放在springboot的application运行环境里读取
password: ${JASYPT_ENCRYPTOR_PASSWORD}
# 加密算法设置 3.0.0 以后
algorithm: PBEWithMD5AndDES
iv-generator-classname: org.jasypt.iv.NoIvGenerator
3. 关于 security
的 yml
配置
主要就是登录的用户名和密码记得先用
jasypt
加密一下哦~
spring:
application:
# 应用名称
name: dream-monitor
# security安全配置
security:
user:
name: ENC(kcectA4qZ4IDk793wgLXlA==)
password: ENC(bEBsIS85g93TCVSnl5ULe3utFwTTeGwB)
# 允许覆盖bean定义
main:
allow-bean-definition-overriding: true
cloud:
nacos:
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
group: DEFAULT_GROUP
namespace: #命名空间
enabled: true
encode: UTF-8
username: nacos
# nacos 密码
password: ENC(eRxrrhJffCFgrinBTO3lPzQIkso6IZlB)
max-retry: 32
file-extension: yml
discovery:
server-addr: #nacos地址
4. 关于 security
的 config
配置
package com.cyj.dream.visual.monitor.config;
import de.codecentric.boot.admin.server.config.AdminServerProperties;
import io.swagger.models.HttpMethod;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
/** * @Description: Web权限配置 * @BelongsProject: DreamChardonnay * @BelongsPackage: com.cyj.dream.visual.monitor.config * @Author: ChenYongJia * @CreateTime: 2021-09-29 * @Email: chen87647213@163.com * @Version: 1.0 */
@Slf4j
@Configuration
@Order(0)
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
private final AdminServerProperties adminContextPath;
public WebSecurityConfigurer(AdminServerProperties adminContextPath) {
this.adminContextPath = adminContextPath;
}
/** * WebSecurity 权限配置 * * @param http 权限http * @return * @author ChenYongJia * @date 2021/9/29 */
@Override
//@SneakyThrows
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
successHandler.setDefaultTargetUrl(this.adminContextPath.getContextPath() + "/");
//配置允许的请求以及跨域问题
http.authorizeRequests()
.antMatchers(this.adminContextPath.getContextPath() + "/assets/**").permitAll()
// 所有请求都可以访问,本地开发打开下面一行的注释
//.antMatchers("/**").permitAll()
//不进行权限验证的请求或资源(从配置文件中读取),本地开发可以,将本行注释掉
.antMatchers(this.adminContextPath.getContextPath() + "/login").permitAll()
.antMatchers("/**")
.fullyAuthenticated()
.and()
.csrf()
.disable()
// 配置登录地址
.formLogin()
.loginPage("/login")
.permitAll()
.and()
//配置登出地址
.logout()
// /userInfo/loginOutByToken
.logoutUrl("/logout")
.and()
// 开启跨域
.cors()
.and()
// 取消跨站请求伪造防护
.csrf()
.ignoringRequestMatchers(
new AntPathRequestMatcher(this.adminContextPath.getContextPath() +
"/instances", HttpMethod.POST.toString()),
new AntPathRequestMatcher(this.adminContextPath.getContextPath() +
"/instances/*", HttpMethod.DELETE.toString()),
new AntPathRequestMatcher(this.adminContextPath.getContextPath() + "/actuator/**"))
.disable();
// @formatter:on
}
@Override
public void configure(WebSecurity web) {
web.ignoring().antMatchers("/actuator/**");
}
}
5. server
启动
接下来就可以直接启动了,访问你设置的
ip/端口
就会跳转到登录页面,输入账号密码
就可以看到原谅色的admin
了,但是此时还没有客户端被监控,下面再来说下client
端
6. client
端其实很简单
这里在上一篇有写到过大家可以去参考一下第七篇:微服务SpringCloud项目(七):整合spring-boot-admin监控
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.1</version>
</dependency>
PS:最近输出的文章以实用耐造为主,希望对你有所帮助而不是长篇大论全是理论实战弱鸡
,最后感谢大家耐心观看完毕,留个点赞收藏是您对我最大的鼓励!
🎉总结:
-
更多参考精彩博文请看这里:《陈永佳的博客》
-
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!
今天的文章微服务SpringCloud项目(八):admin监控整合security设置安全密码分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/22421.html