当前位置: 首页 > news >正文

青岛网站建设案例seo网站运营

青岛网站建设案例,seo网站运营,益阳网站开发,科技太空讲座观后感改文章写的很好:https://zhuanlan.zhihu.com/p/342755411 Spring security 分为两个部分 登陆认证权限认证 登陆认证 其实就是就是登陆注册,然后获取登陆凭证的问题 操作如下 登陆账号密码,通过账号查询出用户数据,然后密码进…

改文章写的很好:https://zhuanlan.zhihu.com/p/342755411

Spring security 分为两个部分

  1. 登陆认证
  2. 权限认证

登陆认证
其实就是就是登陆注册,然后获取登陆凭证的问题
操作如下

  1. 登陆账号密码,通过账号查询出用户数据,然后密码进行比对
  2. 比对成功,将用户信息插入 SecurityContextHolder 中
    ,这就是过了登陆认证。也就是说 UsernamePasswordAuthenticationFilter 拦截器将不在拦截
    在这里插入图片描述
@AutoConfiguration
// 需要配置权限认证的其实就只有这一段,添加这个注解就OK了
// 就是这个 prePostEnabled=true,有了它,就可以在方法上写注解来做权限验证
// 例如:@PreAuthorize("@实例类.方法('参数')")
// example:@PreAuthorize("@ss.hasPermission('true')")
// 具体看下面的权限验证部分
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class YudaoWebSecurityConfigurerAdapter {
... 省略其他代码/*** 配置 URL 的安全配置* * 注意:* 其实这里主要是设置是否需要登录的* 权限验证其实不在这个地方** anyRequest          |   匹配所有请求路径* access              |   SpringEl表达式结果为true时可以访问* anonymous           |   匿名可以访问* denyAll             |   用户不能访问* fullyAuthenticated  |   用户完全认证可以访问(非remember-me下自动登录)* hasAnyAuthority     |   如果有参数,参数表示权限,则其中任何一个权限可以访问* hasAnyRole          |   如果有参数,参数表示角色,则其中任何一个角色可以访问* hasAuthority        |   如果有参数,参数表示权限,则其权限可以访问* hasIpAddress        |   如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问* hasRole             |   如果有参数,参数表示角色,则其角色可以访问* permitAll           |   用户可以任意访问* rememberMe          |   允许通过remember-me登录的用户访问* authenticated       |   用户登录后可访问*/@Beanprotected SecurityFilterChain configure(HttpSecurity httpSecurity) throws Exception {// 设置每个请求的权限httpSecurity// ①:全局共享规则.authorizeRequests()// permitAll 关键点 这里就是意思要不要登陆.antMatchers(securityProperties.getPermitAllUrls().toArray(new String[0])).permitAll()// ③:兜底规则,必须认证.anyRequest().authenticated();// 添加 JWT FilterhttpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);return httpSecurity.build();}
... 省略其他代码

权限验证

@AutoConfiguration
@EnableConfigurationProperties(SecurityProperties.class)
public class YudaoSecurityAutoConfiguration {@Resourceprivate SecurityProperties securityProperties;/*** Spring Security 加密器* 考虑到安全性,这里采用 BCryptPasswordEncoder 加密器** @see <a href="http://stackabuse.com/password-encoding-with-spring-security/">Password Encoding with Spring Security</a>*/@Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}/*** 认证失败处理类 Bean*/@Beanpublic AuthenticationEntryPoint authenticationEntryPoint() {return new AuthenticationEntryPointImpl();}/*** 权限不够处理器 Bean*/@Beanpublic AccessDeniedHandler accessDeniedHandler() {return new AccessDeniedHandlerImpl();}/*** Token 认证过滤器 Bean*/@Beanpublic TokenAuthenticationFilter authenticationTokenFilter(GlobalExceptionHandler globalExceptionHandler) {return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler);}@Bean("ss") // 使用 Spring Security 的缩写,方便使用public SecurityFrameworkService securityFrameworkService() {return new SecurityFrameworkServiceImpl();}}

权限验证

上面配置已经开启了注解 @PreAuthorize 来做权限验证
看懂这里就简单了。举例如下
例如:@PreAuthorize(“@实例类.方法(‘参数’)”)
example:@PreAuthorize(“@ss.hasPermission(‘true’)”)
这里实现就是:

  1. 开启注解@PreAuthorize做权限校验
  2. 注入名称为 ss 的bean
  3. 写入方法 hasPermission,方法返回true=权限校验通过,false=权限校验不通过

注入名称为 ss 的bean 如下:

// 创建一个权限校验类
@AllArgsConstructor
public class SecurityFrameworkServiceImpl {@Overridepublic boolean hasPermission(String permission) {return permission.equals("true");}@Overridepublic boolean hasAnyPermissions(String... permissions) {return false;}@Overridepublic boolean hasRole(String role) {return false;}@Overridepublic boolean hasAnyRoles(String... roles) {return false;}@Overridepublic boolean hasScope(String scope) {return false;}@Overridepublic boolean hasAnyScopes(String... scope) {return false;}
}
 // 实例化 权限校验类,并注入spring容器中
@Bean("ss")
public SecurityFrameworkService securityFrameworkService() {return new SecurityFrameworkServiceImpl();
}

到这里就结束了!
@PreAuthorize(“@ss.hasPermission(‘true’)”)
@PreAuthorize 开启校验
调用ss实例类中的hasPermission方法
返回结果为true=权限通过,false=权限不通过

http://www.yidumall.com/news/17791.html

相关文章:

  • 法制办网站建设谷歌 chrome 浏览器
  • 网站做转链接违反版权吗长沙网站制作关键词推广
  • 创建网站制作首页网站优化包括哪些
  • 怎么免费建立个人网站新闻今天
  • WordPress网站代码修改百度云引擎搜索
  • wordpress 流量消耗上海谷歌seo推广公司
  • 网站开发创意设计深圳推广
  • 自己的网站怎么做跳转网站为什么要做seo
  • 江门有那几间公司做网站的今日新闻头条内容
  • 重庆网络营销手机卡顿优化软件
  • 用mcu做灯光效果网站深圳优化网站
  • 太原网站建设哪家好百度网址大全官网
  • 做理财网站需要办理icp证吗营销系统
  • 网站备案找回今日头条指数查询
  • C#如何做简易网站建站seo推广
  • 深圳市住房建设局网站seo自己怎么做
  • 网站的整合媒体发稿推广
  • 如何在公司系统建网站上海网络推广营销策划方案
  • 网站模板怎么编辑百度搜索关键词排名
  • 广州建网站要多少钱google谷歌搜索主页
  • 做简单的企业网站需要学哪些seo手机关键词排行推广
  • 台前网站建设价格网络运营推广
  • 常德网站建设多少钱app推广注册赚钱
  • 深圳做网站建设广州百度竞价外包
  • 大学生软件开发项目推荐湖南关键词优化排名推广
  • 网站排名怎么做 site网站创建免费用户
  • 珠海网站制作报价国外seo工具
  • 贵阳有哪些做网站的公司网站策划方案
  • ps做网站logo尺寸网络营销的概念和特点是什么
  • 网站团队建设情况谷歌搜索引擎首页