自定义Realm
创建一个类继承 AuthorizingRealm
,然后覆盖 doGetAuthenticationInfo
方法,在此方法当中去从数据库中获取用户信息,交给验证器去验证用户的信息是否合法,如下图所示:
/**
* @author BNTang
*/
public class MyRealm extends AuthorizingRealm {
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
return null;
}
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
// 获取用户名
String username = (String) token.getPrincipal();
// 假如以下定义的用户名和密码是从数据库中查询出来的,实际中需要注入Dao去数据库中进行查询然后进行验证查询出来的信息是否合法
String myName = "BNTang";
String password = "1234";
// 如果输入的名称不和数据库查询出来的一致
if (!myName.equals(username)) {
return null;
}
// 如果等于,交给认证器去认证即可我们就无须关心了
return new SimpleAuthenticationInfo(username, password, this.getName());
}
}
在 ini
文件当中在进行配置一下,配置我们自定义的 Realm,让安全管理器使用 Realm 的时候,让他使用我们定义好的 Realm,配置完成了之后启动运行即可。测试方式同我们之前的方式一样的。
myRealm=top.it6666.realm.MyRealm
securityManager.realms=$myRealm
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具