★学习目标:
1、掌握云借阅系统的访问权限控制
★思考任务:
1、如何实现访问权限控制?
★任务学习:
★知识要点:
1、如何解决云借阅系统缺陷
云借阅图书管理系统主要模块功能已全部实现,但是项目此时存在一定的隐患,普通用户登录成功后,访问控制器类中管理员才有的添加和编辑方法也不会被拒绝。为了解决这个隐患,可以将普通用户能访问的控制器路径存放在配置文件中,然后在拦截器中对用户访问进行判断,如果访问的用户具有普通用户的权限,则放行,否则对请求不予放行。
step 1:根据上述方案实现访问权限的控制,具体步骤如下所示。创建并编写配置文件:在项目的resources目录下创建普通用户可以访问的资源配置文件ignoreUrl.properties,在配置文件中编写普通用户可以访问的资源路径,具体如下所示。
ignoreUrl=/logout,
/selectNewbooks,
/findById,
/borrowBook,
/search,
/searchBorrowed,
/returnBook,/searchRecords
step 2:加载配置文件:在SpringMvcConfig配置类中加载ignoreUrl.properties配置文件,并将读取到的配置文件的内容设置到自定义拦截器中。加载配置文件后的SpringMvcConfig配置类如下所示。
@Configuration
@PropertySource("classpath:ignoreUrl.properties")
@ComponentScan({"com.itheima.controller"})
@EnableWebMvc
public class SpringMvcConfig implements WebMvcConfigurer {
@Value("#{'${ignoreUrl}'.split(',')}") private List<String> ignoreUrl;
@Bean
public ResourcesInterceptor resourcesInterceptor(){
return new ResourcesInterceptor(ignoreUrl); }
// 在注册的拦截器类中添加自定义拦截器。省略
step 3: 更新自定义拦截器:之前自定义的拦截器中,只对用户的登录状态和登录访问进行判断,为判断当前用户是否对当前访问路径有权限,需要更新ResourcesInterceptor拦截器 (省略)。
step 4:自定义拦截器对访问权限的控制已经完成。接下来测试用户的访问权限。启动项目,使用普通用户登录系统,在浏览器中访问图书下架的方法,访问路径为http://localhost:8080/cloudlibrary/book/editBook?id=1&status=3,此时页面跳转到用户登录页面,如图所示。

step 5:使用管理员登录系统后,浏览器中访问图书下架的方法,访问路径为http://localhost:8080/cloudlibrary/book/editBook?id=1&status=3,此时页面跳转如图所示。


