springsecurity-01-0511课堂代码

BaseController

  1. package com.springsecurity.springsecurity.controller;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5.  
  6. @Controller
  7. public class BaseController {
  8.  
  9. @RequestMapping({"/","/index"})
  10. public String index(){
  11. return "index";
  12. }
  13.  
  14. @RequestMapping("/tologin")
  15. public String toLogin(){
  16. return "login";
  17. }
  18.  
  19. @RequestMapping("/welcome")
  20. public String toWelcome(){
  21. return "welcome";
  22. }
  23.  
  24. @RequestMapping("/article-list")
  25. public String toArticleList(){
  26. return "article/article-list";
  27. }
  28.  
  29. @RequestMapping("/product-brand")
  30. public String toProductBrand(){
  31. return "product/product-brand";
  32. }
  33. @RequestMapping("/product-category")
  34. public String toProductCategory(){
  35. return "product/product-category";
  36.  
  37. }
  38. @RequestMapping("/product-list")
  39. public String toProductList(){
  40. return "product/product-list";
  41. }
  42.  
  43. @RequestMapping("/member-list")
  44. public String toMemberList (){
  45. return "member/member-list";
  46. }
  47. @RequestMapping("/member-del")
  48. public String toMemberDel(){
  49. return "member/member-del";
  50. }
  51.  
  52. @RequestMapping("/admin-role")
  53. public String toAdminRole (){
  54. return "admin/admin-role";
  55. }
  56. @RequestMapping("/admin-permission")
  57. public String toAdminPermission(){
  58. return "admin/admin-permission";
  59. }
  60. @RequestMapping("/admin-list")
  61. public String toAdminList(){
  62. return "admin/admin-list";
  63. }
  64. }

SecurityConfig

  1. package com.springsecurity.springsecurity;
  2.  
  3. import org.springframework.scheduling.annotation.EnableScheduling;
  4. import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  5. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  6. import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
  7. import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  8. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  9.  
  10. @EnableWebSecurity
  11. public class SecurityConfig extends WebSecurityConfigurerAdapter {
  12.  
  13. // 授权:设置权限(权限划分)和页面(四个菜单项)的访问关联
  14. // admin 页面需要有admin权限
  15. // article页面需要有article权限
  16. // 等等
  17.  
  18. @Override
  19. protected void configure(HttpSecurity http) throws Exception {
  20. // 关闭springsecurity阻止Frame
  21. http.headers().frameOptions().disable();
  22.  
  23. // 请求访问需要的权限
  24.  
  25. http.authorizeRequests().antMatchers("/admin-role","/admin-permission","/admin-list").hasRole("admin")
  26. .antMatchers("/article-*").hasRole("article")
  27. .antMatchers("/member-*").hasRole("member")
  28. .antMatchers("/product-*").hasRole("product");
  29.  
  30. // 开启登录页面 默认/login springsecurity自带的
  31. // http.formLogin();
  32.  
  33. // /login提交表单默认的用户名和密码的请求参数是:username和password,还能验证登录失败/login?err,登录成功跳转到首页
  34. http.formLogin().loginPage("/tologin").loginProcessingUrl("/login");
  35.  
  36. // <from action="/login"> <input name="username"/> <input name=password/>
  37. // 阻止网络攻击的检测----/tologin关联/login出现
  38. http.csrf().disable();
  39.  
  40. // 开启注销, 默认访问/logout,当用户确认注销跳转到/login?logout登录页面
  41. http.logout();
  42.  
  43. // 开启记住用户 将用户信息保存在cookie中
  44. http.rememberMe();
  45.  
  46. }
  47.  
  48. // 认证:用户和权限绑定
  49. @Override
  50. protected void configure(AuthenticationManagerBuilder auth) throws Exception {
  51. // 用户持久化:数据库 内存
  52. // 101用户对应的权限article
  53. // SpringSecurity5.0 版本对于密码进行不同规则的加密
  54. // passwordEncoder()
  55. // BCryptPasswordEncoder加密格式对密码进行加密
  56.  
  57. auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
  58. .withUser("101").password(new BCryptPasswordEncoder().encode("1")).roles("article").and()
  59. .withUser("102").password(new BCryptPasswordEncoder().encode("1")).roles("product").and()
  60. .withUser("103").password(new BCryptPasswordEncoder().encode("1")).roles("member").and()
  61. .withUser("104").password(new BCryptPasswordEncoder().encode("1")).roles("admin");
  62. }
  63.  
  64. }

springsecurity-01-0511的更多相关文章

  1. 用SpringSecurity从零搭建pc项目-01

    注:之前写过一些列的SpringSecurity的文章,重新写一遍是为了把某些不必要的步骤省去,留下精简的,因为工作中有一些不需要. 在java的权限框架里,shiro和SpringSecurity是 ...

  2. SpringMVC+spring-security+sitemesh+hibernate+freemarker整合-转

    http://www.oschina.net/code/snippet_170632_46774 代码分享 当前位置: 代码分享 » Java  » Web编程 搜 索   SpringMVC+spr ...

  3. SpringSecurity的简单应用(一)

    java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...

  4. web项目学习之spring-security

    转自<http://liukai.iteye.com/blog/982088> spring security功能点总结: 1. 登录控制 2. 权限控制(用户菜单的显示,功能点访问控制) ...

  5. SpringBoot19 集成SpringSecurity01 -> 环境搭建、SpringSecurity验证

    1 环境搭建 1.1 创建一个SpringBoot项目 项目脚手架 -> 点击前往 1.2 创建一个Restful接口 新建一个Controller类即可 package com.example ...

  6. SpringBoot整合SpringSecurity简单实现登入登出从零搭建

    技术栈 : SpringBoot + SpringSecurity + jpa + freemark ,完整项目地址 : https://github.com/EalenXie/spring-secu ...

  7. Spring Cloud 之Spring-Security

    对于Spring-Security首先要明白这么几点: 1.什么是SpringSecurityurity2.SpringSecurity应用场景3.SpringBoot整合Security4.Secu ...

  8. SpringMVC+springSecurity+flexPaper 配置--类似百度文库在线预览

    背景:现在项目需要做一个类似百度文库的在线预览功能,在网上找了下很多人推荐使用FlexPaper,所以今天尝试学习了FlexPaper顺便集成到现有的框架中 由于网上目前的说的都不是很详细,所以现在记 ...

  9. SpringBoot20 集成SpringSecurity02 -> 利用SpringSecurity进行前后端分离的登录验证

    1 SpirngBoot环境搭建 创建一个SpringBoot项目即可,详情参见三少的相关博文 参考博文 -> 点击前往 SpirngBoot项目脚手架 -> 点击前往 2 引入Spirn ...

  10. SpringSecurity学习四----------基于不同角色跳转到不同URL

    © 版权声明:本文为博主原创文章,转载请注明出处 1.项目结构 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0& ...

随机推荐

  1. 直播流媒体ums

    准备工具 下载  UltrantMediaServer服务器 FlashMediaLiveEncoder测试直播工具 第一步 安装 UltrantMediaServer服务器 第二步 打开网也输入   ...

  2. spring property标签中的 ref属性和ref 标签有什么不同

    spring的配置文件可能会有多个<property name="a" ref="b" />就是找当前配置文件里的bean 也就是b <ref ...

  3. SpringDataJpa打印Sql详情(含参数)

    Spring Data Jpa打印Sql详情(带sql参数) 这里使用的是 log4jdbc,yml配置文件里的数据源配置也要做相应的修改 pom文件引入 <dependency> < ...

  4. css最终章之浮动、定位、溢出属性处理、z-index属性、透明度

    上期内容回顾 CSS简介 # 主要就是给HTML标签添加样式 # 固定语法结构 选择器 {属性名1:属性值;属性名2:属性值} 三种引用方式 1.link标签引入外部css文件(最正规) 2.HTML ...

  5. Solution -「CF 1132G」Greedy Subsequences

    \(\mathcal{Description}\)   Link.   定义 \(\{a\}\) 最长贪心严格上升子序列(LGIS) \(\{b\}\) 为满足以下两点的最长序列: \(\{b\}\) ...

  6. suse 12 二进制部署 Kubernetets 1.19.7 - 第12章 - 部署dashboard插件

    文章目录 1.12.0.创建namespace 1.12.1.创建Dashboard rbac文件 1.12.2.创建dashboard文件 1.12.3.查看pod以及svc 1.12.4.获取 d ...

  7. iptTable规范

    规范之HTML 先在当前页面放入几个表格设置按钮的html(样式可能需重新调整) <div class="bottom_nav1 ta_l" style="padd ...

  8. 手写一个springboot starter

    springboot的starter的作用就是自动装配.将配置类自动装配好放入ioc容器里.作为一个组件,提供给springboot的程序使用. 今天手写一个starter.功能很简单,调用start ...

  9. 6.Flink实时项目之业务数据分流

    在上一篇文章中,我们已经获取到了业务数据的输出流,分别是dim层维度数据的输出流,及dwd层事实数据的输出流,接下来我们要做的就是把这些输出流分别再流向对应的数据介质中,dim层流向hbase中,dw ...

  10. Redis——入门学习笔记

    Redis学习 说到前面:这篇笔记只是我作为一个Redis新手,从0到认知的一个过程.后续会持续深入学习. 学习初衷和计划 学习Redis,因为这是热门技术,必须掌握的技术,别人都会我不会.就这一点就 ...