Mejora de Java-05-shiro- juicio simple de autorización

Inserte la descripción de la imagen aquí


QQ 1274510382 Wechat
JNZ_aming
Business Alliance Grupo QQ 538250800 Problemas
tecnológicos Grupo QQ 599020441
Solución Grupo QQ 152889761
Únase a nosotros Grupo
QQ 649347320 Grupo QQ de aprendizaje compartido 674240731
Tecnología cronológica que aming
seguridad de red, aprendizaje profundo, integrado, mejora de la máquina, inteligencia biológica, ciencias de la vida.

Ding Ding Ding: El producto está en línea—> Siga la
cuenta pública oficial de WeChat —Jinan Ji Nian Information Technology Co., Ltd. Proyecto de medios de vida de la gente: franquicia de tiendas / citas de entretenimiento / círculo comercial de empresas / subcontratación a tiempo parcial - lanzamiento del proyecto /
proyecto de seguridad: situacional sistema de defensa de la conciencia sistema de inspección / Intranet
proyecto de servicio de la nube: expansión dinámica de anfitrión nube / nombre de dominio / elástico de disco de almacenamiento de base de datos en la nube / API-AIeverthing
Consejos sobre productos / servicio post-venta (lo mismo)

Siempre es superficial en el papel, ¡y sé absolutamente que este asunto debe hacerse! ! !
Buscando socios con ideas afines para iniciar un negocio. . . Baotuan Didi aming información de contacto! !


#Este artículo es para que el sistema de publicidad publique anuncios automáticamente

# Si hay alguna infracción, eliminación, contáctenos rápidamente




# 3 Realización inicial de la autorización de Shiro

Inserte la descripción de la imagen aquí

3.1 Juzgar el papel

3.1.1 Modificar archivo de configuración

Simplemente agregue el nombre del rol incluido en el usuario directamente después de la contraseña.

 [users]
zhangsan=zs,role1,role2
lisi=ls

3.1.2 Agregar código

hasRole () usa el valor de retorno para determinar si el usuario tiene el rol especificado.

 if(subject.isAuthenticated){
    
    
 		System.out.println("登录成功");
 		boolean hasRoleResult = SecurityUtils.getSubject().hasRole("role1");
		System.out.println("result:"+hasRoleResult);
}

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

 通过  subject 看是否 有角色

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.2 Autoridad de juicio

3.2.1 Modificar el archivo de configuración

 [users]
zhangsan=zs,role1,role2
lisi=ls
[roles]
role1=permission1,permission2

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3.2.2 Agregar código de prueba

Una vez que la autenticación es exitosa, la autorización
se controla si existe una AuthenticationException.
SecurityUtils.getSubject().checkPermission("permission");

Inserte la descripción de la imagen aquí

4 Certificación de implementación de Realm

4.1 Usar iniRealm

 public class ShiroRun {
    
    
 		public static void main(String[] args) {
    
    
 
 			SecurityManager securityManager = new DefaultSecurityManager();
			IniRealm iniRealm = new IniRealm("classpath:shiro.ini");
			securityManager.setRealm(iniRealm);
 			SecurityUtils.setSecurityManager(securityManager);
 			Subject subject = SecurityUtils.getSubject();
 //web 项目时,用户名和密码是客户端表单传递过来的用户名和密码。
 AuthenticationToken token = new UsernamePasswordToken("admin", 
"pwd");
 		try {
    
    
 //login()方法没有返回值,只能通过是否有异常判断是否登录成功。
				 subject.login(token);
				 System.out.println("登录成功");
 			} catch (UnknownAccountException e) {
    
    
 				System.out.println("账号不存在");
 			} catch (IncorrectCredentialsException e) {
    
    
				 System.out.println("密码错误");
 			} catch (AuthenticationException e) {
    
    
				 e.printStackTrace();
			 }
 		} 		
 	}

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_33608000/article/details/112847820
Recomendado
Clasificación