En shiro, ¿cuáles son los atributos del director?
Principal es un objeto, es decir, un objeto de entidad con un atributo de nombre de usuario
Los detalles son los siguientes:
En el método de inicio de sesión, llame al asunto. login (token), también debe usar manualmente el principal y el domainName para construir el objeto SimpleAuthenticationInfo. De hecho, el principal aquí es un objeto, es decir, un objeto de entidad con un atributo de nombre de usuario, y luego el objeto SimpleAuthenticationInfo se almacenará en el. sesión.
El código es el siguiente: try?{ sujeto.login(token); //Obtener el objeto kingdomSecurityManager, que contiene mucha información, como datos en el archivo de configuración RealmSecurityManager?=? (RealmSecurityManager)?securityManager; Collectionlt;Realmgt;?collection?=?realmSecurityManager.getRealms();if?(colección! null?amp;amp;?collection.size()gt;0){ Iterador?iterador?=?colección .iterator();? while(iterator.hasNext()){Realm?realm?=?(Realm)iterator.next();? //Obtiene el nombre de la fuente de datos predeterminada, aunque el nombre predeterminado es iniRealm, String?realmName. ?= también se puede obtener mediante programación. ?realm.getName(); //Objeto de entidad personalizado User?user?=?new?User(); user.setUsername(username); object SimpleAuthenticationInfo?info?=? new?SimpleAuthenticationInfo(usuario, contraseña, domainName); //analice a través del código fuente después de llamar a sujeto.login(token), se guardará en la sesión a través de SubjectContext, por lo que se reutilizará directamente. código fuente (clase DefaultSecurityManager) SubjectContext ?subjectContext?=?new?DefaultSubjectContext(); sujetoContext.setAuthenticated(true); sujetoContext.setAuthenticationToken(token); sujetoContext.setAuthenticationInfo(info); .setSubject(subject);
}//El guardado se completa en este método
realmSecurityManager.createSubject(subjectContext);
}
}
}catch(UnknownAccountException?e){
error?=?""El nombre de usuario no existe";
}
error?=?"? El nombre de usuario no existe";
}catch?(IncorrectCredentialsException?e){
error?=?" Uso
Nombre de usuario o contraseña incorrectos";
}catch?(AuthenticationException?e){
error?=?"Otros errores" e.getMessage();
}
El resultado final es que la etiqueta