SpringBoot 通过代理创建接口的实现类 Bean

需要实现的功能是使用指定的 SDK 开发包来访问其他服务的资源,这种场景其实和Mapper、Feign 类似。所以,希望也通过接口上配置注解的方式实现。 所以在本文使用了三个注解: @RkproblemMapperScan :自定义的注解,用于指定要扫描的包名; @RkproblemMapper :自定义的注解,用于标记当前接口需要被代理; @RequestMapping :SpringMvc 的注解,用于标记当前方法需要被代理,以及代理的 url。

Shiro系列(二)——Shiro 多 Realm 实现

本文基于上一篇文章《 Shiro + Springboot + JWT 的整合》延续,示例项目也是在上篇文章的基础上扩展而来的。 一个系统一般都具有多种用户类型,如管理员、普通用户和运营者账号等,这些用户都存储在不同的表中。当然,通过对 Token 的内容进行条件判断,一个 Realm 是可以直接实现多个账号登录的,但是这样将导致不同用户的登录完全耦合在一起,这不是我们想看到的,所以有了多 Realm 的需求,并且 Shiro 是支持多 Realm 的。 但是如果有多个 Realm,Shiro 将对每个都进认证,而我们希望的是管理员。用户等都只调用自己的 Realm,所以对这些地方的逻辑要稍微做些改动。

Shiro系列(一)——Shiro + Springboot + JWT 整合

本文的出现表示不再进行 Spring Security Oauth 实现的研究了,原因是原开源项目已经被废弃了不再更新了,而且 Oauth 实现的内容有些奇怪,新的项目 spring-authorization-server 目前才发布到 0.1.0,默认只提供了基于内存的实现,个人认为还不是很完善,不适合用到项目中。而且 Spring Security 的 Oauth 流程都实现了,要修改还得从新研究 spring-authorization-server 的实现逻辑,然后进行修改定制,太耗费精力了,不如使用 Shiro 自己实现 Oauth 的逻辑。 本文作为 Shiro 入门文章,主要描述 Shiro 如何整合 JWT 实现登录校验问题,还有 Shiro 的认证+授权模式对 JWT 并不是很友好。

Spring Security系列(五)——Oauth2使用JWT生成Token无法指定授权范围的解决方法

写在前面Spring Oauth 提供了对 jwt 的支持,要实现 jwt 功能很简单,但是在指定授权范围时将会遇到无法指定授权范围的问题,本文主体描述的是如何解决这个问题。本文依赖环境:<!-- spring-security-oauth2 2.3.4.RELEASE --><d

Spring Security系列(四)——Spring Oauth2实现登录同时授权、自定义授权界面

本文环境: org.springframework.cloud:spring-cloud-starter-oauth2:2.2.4.RELEASE本文场景: 希望实现类似 QQ 的登陆并授权功能,但是将 /oauth/authorize 路径加入 permitAll 没有生效,加入 web.igno

Spring Security系列(三)——WebFlux配置方式以及多登陆入口实现

本文场景: 使用Spring Security做权限控制,系统包含普通用户和系统管理员两种类型,希望有不同的登录入口;并且在Spring Gateway上配置,Gateway使用的是WebFlux,无法兼容MVC,所以使用WebFlux配置Security。纯记录,目前项目还是小demo,贴的示例代

Spring Security系列(二)——过滤器链分析以及创建多个登陆入口

写在前面本文场景: 希望在网关上实现security统一进行权限认证,后续的服务间交互不再进行权限认证。但是系统有两个类型的账号,一个是普通用户,一个是系统后台管理员,完全是两个类型,希望创建给两个不同的登陆入口分别给两个类型的账号登录使用。想到的解决方法有两个:网关上的security想办法创建多

Spring Security系列(一)——登录认证基本配置

1. 开启Security@EnableWebSecurity@Configurationpublic class UserWebSecurityConfiguration extends WebSecurityConfigurerAdapter { @Resource private

SpringBoot使用Java修改端口、项目打包

本文环境1.SpringBoot 2.2.62.jdk 1.8.0_241一、使用java修改端口通过实现WebServerFactoryCustomizer<ConfigurableWebServerFactory>接口实现,springboot2.X之前的版本会有所不同。@Sprin

Springboot关闭默认的日志输出

本文环境springboot 2.2.6jdk 1.8.0_241一、配置application.yml在resources目录下新建application.yml文件(或:application.properties),添加如下内容:logging.level.[包名]: OFF# 例如,OFF可

Apache ignite笔记(二)——持久化

本文环境:Apache ignite 2.8.0jdk 1.8.0_241一、开启持久化java方式:// Ignite persistence configuration.DataStorageConfiguration storageCfg = new DataStorageConfigurat

Apache ignite笔记(一)——集群:集群发现、配置监听端口、对等类

本文环境Apache ignite 2.8.0jdk 1.8.0_241一、集群发现1.1 基于静态ip集群可采用xml或java两种方式配置。xml配置方式:<beans xmlns="http://www.springframework.org/schema/beans"

mybatis连接工厂java类实现

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西mybatisjava1.正文package com.etc.util;import java.io.InputStream;import java.sql.C

MyBatis通过注解实现Mapper映射器

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBatisjava 1.注解与xml映射器的比较注解相比于xml配置的优点:a 灵活,代码提示好b 分工合作。将实现类和对应的配置是同一文件,由同样的开发人

MyBatis一级缓存和二级缓存

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBatisjava1.一级缓存默认是开启的,--不同SqlSession缓存不能共享​ MyBatis 默认开启了一级缓存,一级缓存是在SqlSession

MyBastis映射器的高级应用

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBastisjavaSQL server 20121.正文resultMap标签中的collection-属性映射到其他映射器的查询语句示例项目文件:链接:

MyBatis映射器中select等标签中sql的高级应用

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBatisjava1.正文在映射其中,有select、update等标签,可以在这些标签中写sql查询语句sql模糊查询实现在映射器中不能直接连接字符串实现

MyBatis基础,映射器.xml文件详解

写在前面很久以前在有道云笔记上写的笔记,打算放弃它了,将笔记迁移到这里来。文章可能还有很多不足,请大家谅解,欢迎大佬提意见。本文使用到的东西MyBatisjava1.映射器基础头文件<?xml version="1.0" encoding="UTF-8"