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

创办网站需要怎么做中国互联网协会12321举报中心

创办网站需要怎么做,中国互联网协会12321举报中心,自助网站建设程序,一键打开多个wordpress改文章写的很好: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.yayakq.cn/news/188730/

相关文章:

  • 怎么找有赞做网站中文网站建设和英文网站建设的区别
  • 做网站企业 金坛深圳 企业网站建设
  • 建德网站seo网站添加背景音乐
  • 安徽茶叶商城网站建设大连制作网站公司
  • 网站建设费怎么做分录网络网页设计制作公司
  • 素材网站上的元素是怎么做的最好的网站建设价格
  • 做百度网站每年的费用多少合适免费做网站哪里有
  • 网站架设标准买域名的网站
  • 酒类网站建什么是网络推广工作
  • 竞价网站做推广做网站用虚拟主机怎么样
  • 做企业网站所要注意什么东莞整合网站建设
  • 上海建设牌电动三轮官方网站天津正规制作网站公司
  • 网站管理员后台做电影网站会违法吗
  • 山东省建设文化传媒有限公司网站优化seo方法
  • 如何免费制作企业网站做聚美优品网站得多少钱
  • 个人可以做电影网站吗公司设计一个网站
  • 吴江建网站wordpress中文版本
  • 商城建网站关键词工具有哪些
  • 外贸seo网站推广公司群晖wordpress端口
  • 西宁做网站_君博相约做菠菜网站判多久
  • 襄阳做网站公司哪家好网站seo综合查询
  • 一元云够网站建设网架有限公司
  • 廊坊市做网站的公司有哪些长沙模板建站欢迎咨询
  • 河北网站备案查询系统淘宝详情页做的比较好的网站
  • 自己可以建立网站吗域名购买是什么意思
  • 建设个人购物网站文案撰写网站
  • 合肥建站公司哪周口学做网站
  • 蒙牛网站建设报价情况微商引流被加方法精准客源
  • 泰安网站销售公司创建一个自己的公司的英文
  • 网站常用插件网页游戏代理加盟