,其前身是《安全系统》。
先说基础知识,结构比较复杂。 如果你想保护Web资源,没有比AOP更好的方法了。 如果你想保护方法调用,没有比 AOP 更好的方法了。 Web资源的保护取决于实施。 如下所示:
一般来说我们的都是在web.xml中配置的,但是有所不同。 它只是web.xml中配置的代理,真正起作用的是配置为Bean。 web.xml中的代理依次调用这些bean来实现对Web资源的保护。 同时,这些都是作为bean来管理的,所以实现AOP非常简单。 真是一石二鸟啊。
里面提供的很多,有十多个,一一学起来比较复杂。 但对于我们web开发者来说,常用的只有几个,比如下图中红圈标注的:
从上到下,它们实现的功能是: 1、建立必须是连接; 2.提取用户的认证信息; 3、退出; 4. 登录; 5、记住用户; 6. 所有应用程序都必须配置此项。
一般来说,我们在编写Web应用的时候,只需要熟悉这些就可以了。 如果我们不需要连接,我们甚至不需要熟悉第一个。 但肯定有人在想,这些和我的数据库有什么关系呢? 别担心,这些并不直接处理用户的认证,也不直接处理用户的授权,而是交给认证管理器和决策管理器。 如下所示:
对于这两个管理器,我们不需要编写代码,也提供了现成的类。 那么大家又疑惑了:既然是现成的,那怎么和我的数据库关联起来呢? 别担心,事实上,这两位经理自己什么也不做。 认证管理者交接任务,决策管理者交接任务,如下图:
现在我想告诉大家,这里的求和不需要我们写代码。 别崩溃,你就快到了。 提供了多个实现类。 如果我们想使用数据库来存储用户认证数据,那么我们可以选择。 对于我们来说,通常选择就足够了。 它会根据我们配置文件中的设置来决定是否允许某个用户访问指定的Web资源。
它并不直接操作数据库,而是将任务委托给数据库,如下所示:
而我们要做的就是实现这一点。 不要笑画的不好,但是说了这么多,终于说到我们开发的关键点了,那就是我们要实现我们自己的,它是连接我们的数据库和. 需求也很简单,只需要一个返回org....User对象的()方法。 因此,你可以用任何方式设计数据库,无论我们使用一张表、两张表还是三张表,或者我们使用用户授权、用户角色授权还是用户用户组角色授权。 这些具体的 它不关心任何事情,它只关心返回的 User 对象。 至于如何从数据库中读取数据,那是我们自己的事了。