Maxkey

简介 基于Java的身份管理和认证产品;支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议;提供安全、标准和开放的用户身份管理(IDM. 、身份认证(AM. 、单点登录(SSO. 、资源管理和权限管理等。 安装部署 windows 访问下载链接并解压至C盘根目录 文件结构 主要目录/文件 序号 目录/文件 备注 1 jdk/jre 运行时JDK 2 lib 公共包 3 maxkey 认证服务,端口9527 4 maxkey_frontend 认证前端服务,端口8527/管理前端服务,端口8526 5 maxkey_mgt 管理服务,端口9526 6 nginx-1.20.1-proxy Nginx反向代理服务,端口80 7 mysql_*** MySQL数据库,端口3306 8 maxkey_demo 样例,端口9521 9 redis_*** Redis数据库,端口6379 运行脚本 序号 文件名 备注 13 start_maxkey.bat 启动认证服务器 14 start_maxkey_frontend.bat 启动认证前端服务器 15 start_maxkey_mgt.bat 启动管理服务器 16 start_maxkey_mgt_frontend.bat 启动管理前端服务器 17 start_maxkey_db.bat 启动数据库 18 start_maxkey_proxy.bat 启动代理服务器 19 start_maxkey_demo.bat 启动样例 20 set_maxkey_env.bat 环境设置脚本 配置host C:\Windows\System32\drivers\etc ...

2024-11-01 · 1 分钟 · Nebula

Java

基础 枚举类 用于信息标志和信息分类 格式 第一行必须是枚举对象名称 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 修饰符 enum 枚举名称 { 实例1名称, 实例2名称...; } public enum ResultCodeEnum { SUCCESS(200, "成功"), USERNAME_ERROR(501, "用户名错误或不存在"); private Integer code; private String message; ResultCodeEnum(Integer code, String message) { this.code = code; this.message = message; } public Integer getCode() { return code; } public String getMessage() { return message; } } 注解 文档抽取元注解 1 2 3 4 5 6 7 8 9 10 /** *@author//作者 *@version//文档版本号 *@since//最低JDK版本 */ /** * @param a 参数//a参数的解释 * @param b 参数//b参数的解释 * @return 返回值//返回值解释 */ 1 javadoc 文件名.java 内置注解 1 2 3 @Override//检测方法是否继承自父类/接口 @Deprecated//将该注解标志的内容已过时 @SuppressWarnings//压制警告,可以添加内置参数,如"all"压制所有警告 自定义注解 注解本质上就是一个接口 ...

2024-08-09 · 18 分钟 · Nebula

Java-Redis

springboot整合 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 spring: data: redis: # Redis数据库索引(默认为0) database: 1 # Redis服务器地址 host: 127.0.0.1 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空) password: # 连接超时时间 timeout: 10s lettuce: pool: # 连接池最大连接数 max-active: 200 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms # 连接池中的最大空闲连接 max-idle: 10 # 连接池中的最小空闲连接 min-idle: 0 创建配置类 1 2 3 4 5 6 7 8 9 10 11 12 //设置序列化器 @Configuration public class RedisConfig { @Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<Object, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); //把对象转为json字符串的序列化工具 template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Autowired private RedisTemplate redisTemplate; @Test public void testObj() throws Exception { User user=new User(1, "java的架构师技术栈", "man"); ValueOperations<String, User> operations=redisTemplate.opsForValue(); operations.set("fdd2", user); boolean exists=redisTemplate.hasKey("fdd2"); System.out.println("redis是否存在相应的key"+exists); User getUser = (User)redisTemplate.opsForValue().get("fdd2"); System.out.println("从redis数据库获取的user:"+getUser.toString()); } //redisTemplate.opsForValue();//操作字符串 //redisTemplate.opsForHash();//操作hash //redisTemplate.opsForList();//操作list //redisTemplate.opsForSet();//操作set //redisTemplate.opsForZSet();//操作有序set

2024-08-09 · 1 分钟 · Nebula

Quarkus

第一个应用 应用结构 端点 -> 资源 -> 服务 依赖结构 Quarkus BOM的导入,允许省略不同Quarkus依赖的版本 1 2 3 4 5 6 7 8 9 10 11 12 <dependencyManagement> <dependencies> <dependency> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>${quarkus.platform.artifact-id}</artifactId> <version>${quarkus.platform.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 看到 quarkus-maven-plugin ,负责应用程序的打包,也提供开发模式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <build> <plugins> <plugin> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus.platform.version}</version> <extensions>true</extensions> <executions> <execution> <goals> <goal>build</goal> <goal>generate-code</goal> <goal>generate-code-tests</goal> </goals> </execution> </executions> </plugin> </plugins> </build> Gradle同理 ...

2024-08-09 · 4 分钟 · Nebula

Spring

Spring Framework 注:所有xml省略spring格式,需添加 IOC的XML配置详解 配置bean示例 xml如下: 1 <bean id="impl别名" class="impl的全类名"/> java如下: 1 2 3 4 5 6 7 8 9 10 //这是被注入对象 class java { public static void main(String[] args) { //获取IOC容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("xml文件名"); //获取bean 目标对象接口 对象名 = (目标对象接口类型强转) ctx.getBean("xml中的id属性值"); 对象名.成员方法; } } DI的XML配置详解 xml部分 1 2 3 4 5 6 <!--给A注入B,A中包含B对象--> <bean id="A别名" class="A全类名"/> <bean id="B别名" class="B全类名"> <property name="A类中的B对象名" ref="A别名"/> <!--将name值反过来也可以实现反向注入--> </bean> java部分 ...

2024-08-09 · 3 分钟 · Nebula