shiro框架的登录 是如何访问数据库的
时间: 2024-04-13 18:24:52 浏览: 11
Shiro框架的登录功能并不直接访问数据库,而是通过Realm来获取用户的身份和权限信息。在Shiro中,Realm是一个连接应用程序与安全数据(如用户、角色、权限等)的桥梁。
当用户进行登录操作时,Shiro会通过Subject对象将用户提交的身份和凭证传递给相应的Realm进行验证。Realm负责从数据库或其他数据源中获取用户的信息,进行验证并返回给Shiro框架。
在Realm中,你可以自定义具体的数据访问逻辑,包括如何查询用户信息、比对密码、获取用户角色和权限等操作。通常情况下,Realm会使用JDBC或者ORM框架(如MyBatis、Hibernate)来访问数据库,执行相应的SQL查询语句来获取用户信息。
总结来说,Shiro通过Realm实现登录功能时,需要你自定义Realm并在其中编写相应的数据库访问逻辑来获取用户信息。这样,Shiro就能够通过Realm验证用户身份并提供相应的安全控制。
相关问题
shiro 框架登录执行流程
Shiro框架的登录执行流程如下:
1. 用户在前端页面输入用户名和密码,点击登录按钮。
2. 前端将用户名和密码发送到后端。
3. 后端通过Shiro的Subject对象进行认证,Subject对象是Shiro的核心对象之一,它代表了当前用户的安全操作。
4. Subject对象将用户名和密码封装成一个AuthenticationToken对象,AuthenticationToken是Shiro的一个接口,用于封装用户身份和凭证的信息。
5. Shiro的SecurityManager对象接收到AuthenticationToken对象,开始进行身份认证。
6. SecurityManager对象将AuthenticationToken对象传递给Realm对象,Realm对象是Shiro的安全数据源,负责查询用户的身份和凭证信息。
7. Realm对象查询数据库或其他数据源,获取用户的身份和凭证信息,并将其封装成一个SimpleAuthenticationInfo对象。
8. SecurityManager对象接收到SimpleAuthenticationInfo对象,将用户的身份和凭证信息保存到Subject对象中。
9. 如果身份认证成功,Subject对象就可以执行相应的操作,否则抛出相应的异常。
10. Shiro框架会将用户的身份和凭证信息保存到Session中,以便在后续的操作中进行验证。
总的来说,Shiro框架的登录执行流程主要包括用户输入用户名密码、后端进行认证、Realm对象查询用户信息、SecurityManager对象保存用户信息等几个步骤。
shiro 框架执行流程
Shiro框架执行流程如下:
1. 应用程序通过Shiro API进行身份验证或授权请求。
2. Shiro通过SecurityManager处理请求,并在SecurityManager中查找相应的Realm进行身份验证或授权。
3. Realm从数据源(例如数据库)中获取用户的身份信息并将其与用户提供的凭据进行比较。
4. 如果身份验证成功,则Realm将用户的身份信息传递回SecurityManager。
5. SecurityManager使用身份信息创建一个Subject对象,该对象表示当前用户的安全上下文。
6. 应用程序使用Subject对象执行某些操作(例如访问受保护的资源或执行受保护的操作)。
7. 如果操作需要授权,则SecurityManager将请求传递给Realm进行授权。
8. Realm从数据源中获取用户的授权信息,并将其与请求进行比较。
9. 如果授权成功,则Realm将授权信息传递回SecurityManager。
10. SecurityManager确定用户是否被授权执行请求的操作。
11. 应用程序根据SecurityManager的响应执行相应的操作。
整个流程中,应用程序与Shiro API进行交互,SecurityManager负责处理请求,Realm负责处理身份验证和授权,并从数据源中获取必要的信息。Subject对象表示当前用户的安全上下文,用于执行操作和授权,SecurityManager和Realm之间的协作确保应用程序和用户的安全。