shiro连mongodb例子的realm

18 篇文章 0 订阅
12 篇文章 0 订阅

 

发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.csdn.net/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.csdn.net/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件


————————————————

package com.demo.mongodb.realm;

import java.util.Iterator;

import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;

import com.bugull.mongo.BuguMapper;
import com.demo.mongodb.entity.Permission;
import com.demo.mongodb.entity.Role;
import com.demo.mongodb.entity.User;
import com.demo.mongodb.entity.UserDao;

public class MongodbRealm extends AuthorizingRealm {
	private UserDao userDao;
	
	@Override
	protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
		String name=getName();
		Iterator iterator=principals.fromRealm(name).iterator();
		String userName=null;
		if(iterator.hasNext()){
			 userName = (String) iterator.next();   
		}
		User user =(User) userDao.findOne("username", userName);  
		BuguMapper.fetchCascade(user, "roleSet");
        if (user != null) {   
            SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();   
            for (Role group : user.getRoleSet()) { 
            	BuguMapper.fetchCascade(group, "perssionSet");
            	info.addRole(group.getName());
            	if(group.getPerssionSet()!=null){
	            	Iterator it=group.getPerssionSet().iterator();
	            	while(it.hasNext()){
	            		info.addStringPermission(((Permission)it.next()).getName());
	            	}
            	}
            	   
            }   
            return info;   
        } else {   
            return null;   
        }   

	}

	@Override
	protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException {
		UsernamePasswordToken token = (UsernamePasswordToken) authcToken;   
        User user =(User) userDao.query().is("username", token.getUsername()).result();
        if (user != null) {   
            return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName());   
        } else {   
            return null;   
        }
	}

	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值