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

wordpress 百度地图api接口百度seo排名原理

wordpress 百度地图api接口,百度seo排名原理,wordpress免代码分享到,做婚纱网站的步骤一、认证 身份认证#xff0c;就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证#xff0c;但是无论开发者使用那种方式认证#xff0c;都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。 二、授权 授权#x…一、认证 身份认证就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证但是无论开发者使用那种方式认证都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。 二、授权 授权即访问控制控制谁能访问哪些资源。简单的理解授权就是根据系统提前设置好的规则给用户分配可以访问某一个资源的权限用户根据自己所具有权限去执行相应操作。 2.1权限管理核心概念 我们得知认证成功之后会将当前登录用户信息保存到Authentication 对象中Authentication 对象中有一个getAuthorities() 方法用来返回当前登录用户具备的权限信息也就是当前用户具有权限信息。该方法的返回值为 Collection?extends GrantedAuthorit当需要进行权限判断时就回根据集合返回权限信息调用相应方法进行判断。 2.2 GrantedAuthority 解释 那么问题来了针对于这个返回值 GrantedAuthority 应该如何理解呢? 是角色还是权限? 我们针对于授权可以是 基于角色权限管理 和 基于资源权限管理 从设计层面上来说角色和权限是两个完全不同的东西: 权限是一些具体操作角色则是某些权限集合。如:READ_BOOK 和 ROLE_ADMIN 是完全不同的。因此至于返回值是什么取决于你的业务设计情况:。基于角色权限设计就是: 用户 角色 资源  三者关系 返回就是用户的 角色。基于资源权限设计就是:用户e双限资源”三者关系 返回就是用户的 权限。基于角色和资源权限设计就是: 用户角色权限资源 返回统称为用户的 权限为什么可以统称为权限因为从代码层面角色和权限没有太大不同都是权限特别是在Spring Security中角色和权限处理方式基本上都是一样的。唯一区别 SpringSecurity在很多时候会自动给角色添加一个 ROLE_前缀而权限则不会自动添加。 2.3 权限管理策略 Spring Security 中提供的权限管理策略主要有两种类型: 1、基于过滤器(URL)的权限管理(FilterSecurityinterceptor)            基于过滤器的权限管理主要是用来拦截 HTTP 请求拦截下来之后根据 HTTP 请求地址进行权限校验。 2、基于AOP 的权限管理 (MethodSecurityinterceptor)         基于AOP 权限管理主要是用来处理方法级别的权限问题。当需要调用某一个方法时通过AOP 将操作拦截下来然后判断用户是否具备相关的权限。 2.3.1 基于URL 权限管理 在配置中写死/** 需要有xx角色或者权限才能访问 2.3.1.1 准备工作 1pom.xml 依赖包  2测试controller  3security 配置 我们在controller中创建了三个方法分别为 /adminInf   这个url可以匹配 /adminInf.   /adminInf/  /adminInf.htm 等等需要拥有admin的角色才能访问 /rootInf  这个url 需要拥有root的角色才能访问 /getUser 这个url 需要拥有read:user的权限才能才能访问 2.3.1.2 security 配置 Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter {/*** 定义自己的userDetail**/Beanpublic UserDetailsService userDetailsService() {InMemoryUserDetailsManager im new InMemoryUserDetailsManager();im.createUser(User.withUsername(admin).password({noop}123).roles(admin,root).build());im.createUser(User.withUsername(root).password({noop}123).roles(root).build());im.createUser(User.withUsername(test).password({noop}123).authorities(read:user).build());return im;}Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userDetailsService());}Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().mvcMatchers(/adminInf).hasRole(admin) // /adminInf 这个url下面必须有 admin的角色才能访问.mvcMatchers(/rootInf).hasAnyRole(admin,root) // /rootInf 这个url下面 有 admin 或者root 角色均可以访问.mvcMatchers(/getUser).hasAnyAuthority(read:user) // /getUser 这个url 下面必须有 read:user 这个权限才能访问.anyRequest().authenticated().and().formLogin()// 开启form表单登录.and().csrf().disable();} } 2.3.1.3 测试controller RestController public class HelloController {GetMapping(/getUser)public String getUser() {return userinfo authority ok ;}GetMapping(/adminInf)public String admin() {return admin role ok ;}GetMapping(/rootInf)public String root() {return root role ok ;} } 2.3.1.4 测试结果 1、当我们登录admin 的用户时候访问,因为getUser没有配置权限所以不能访问 2、当我们登录test 的用户时候访问,因为rootinfo/ adminInfo没有配置角色所以不能访问 2.3.1.5 基于多种匹配规则 MvcMatchersAuthorizedUrl 、mvcMatchers 基于mvc 的匹配规则  /test     可以匹配  /test.   /test/   /test.h...   多种   org.springframework.security.config.annotation.web.AbstractRequestMatcherRegistry#antMatchers(java.lang.String...) .antMatchers()  早期 4.0 之前使用基于全路径匹配  /test     只能匹配  /test  这个路径下的方法   从用法上来看两个使用基本没有区别区别主要是在于匹配的路径上mvc 可以匹配范围更广ant 是全匹配 org.springframework.security.config.annotation.web.AbstractRequestMatcherRegistry#regexMatchers(java.lang.String...)  基于正则方案当我们写一个正则表达式就可以 2.4 基于方法的权限管理 基于方法的权限管理主要是通过AOP 来实现的Spring Security 中通过 MethodSecuritvInterceptor 来提供相关的实现。不同在于Filter Security interceptor 只是在请 求之前进行前置处理MethodSecuritvinterceptor 除了前置处理之外还可以进行后置处理。 前置处理就是在请求之前判断是否具备相应的权限后置处理则是对方法的执行结果进行二 次过滤。前置处理和后置处理分别对应了不同的实现类。 2.4.1 开启注解支持 EnableGlobalMethodSecurity 1、perPostEnabled: 开启 Spring Security 提供的四个权限注解PostAuthorize PostFilter、PreAuthorize 以及 PreFilter。 2、securedEnabled: 开启 Spring Security 提供的 Secured 注解支持该注解不支持权限表达式 3、jsr250Enabled:开启JSR-250 提供的注解主要是DenyAll、PermitAll、RolesAll 同 样这些注解也不支持权限表达式 # 以上注解含义如下: - PostAuthorize: 在日标方法执行之后进行权限校验。 - PostFiter: 在目标方法执行之后对方法的返回结果进行过滤。 - PreAuthorize: 在目标方法执行之前进行权限校验。 - PreFiter: 在日标方法执行之前对方法参数进行过滤 - secured: 访问目标方法必须具各相应的角色 - DenyA11: 拒绝所有访问。 - PermitA1l: 允许所有访问。 - RolesAllowed: 访问目标方法必须具备相应的角色 这些基于方法的权限管理相关的注解一般来说只要设置 prePostEnabledtrue 就够用了 2.4.2 权限表达式 2.4.3 角色权限实战 1      /**      *  登录用户必须是  admin  而且角色必须是 ADMIN      * return      */     PreAuthorize(hasRole(ADMIN) and authentication.name admin)     RequestMapping(hello)     public String hello() {         return hello;     } 2)、     /**      *  登录的用户名必须和传过来的用户名一致才能通过  spe 表达式      * param username      * return      */     PreAuthorize(authentication.name #username)     RequestMapping(username)     public String username(String username) {         return hello: username; } 3、     /**      *  过滤 users 对象里面的属性  id % 2 的数据保留 不能整除的      *  users 必须是一个集合否则没法过滤  filterObject 固定写法      * param users      * return      */     PreFilter(value filterObject.id % 2 ! 0,filterTarget users)     RequestMapping(users)     public String addUser(RequestBody ListSecurityUser users) {         System.out.println(users);         try {             String userStr new ObjectMapper().writeValueAsString(users);             return userStr;         } catch (JsonProcessingException e) {             e.printStackTrace();         }         return null ; } 4、        /**      *  后置过滤   当请求过来的  id值为1的时候那么就返回否则就不返回      * param id      * return      */     PostAuthorize(value returnObject.id 1 )     RequestMapping(getUserId)     public SecurityUser getUserId(Integer id) {        return new SecurityUser(id,lq); } 5    /**       *  保留  id % 2 0 的数据返回用来对方法返回值进行过滤      * return      */     PostFilter(value filterObject.id %20 )     RequestMapping(getAllUser)     public ListSecurityUser getAllUser() {         ListSecurityUser userList new ArrayList();         IntStream.rangeClosed(0,10)                 .forEach(index - userList.add(new SecurityUser(index,lq-index)));           return userList;       } jsr250 使用比较少的因为功能比较单一 /*** 只能判断角色而且需要自己加前缀 ROLE_ 当前用户必须有 ADMIN 权限才能查看* return*/ Secured({ROLE_ADMIN}) RequestMapping(value getUser1) public SecurityUser getUser1() {return new SecurityUser(1,lisi); }/*** 判断用户有 ADMIN或者 ROOT 角色就可以访问* return*/ Secured({ROLE_ADMIN,ROLE_ROOT}) RequestMapping(value getUser2) public SecurityUser getUser2() {return new SecurityUser(1,王五); }/*** 所有的用户都可以访问* return*/ PermitAll RequestMapping(value permitAll) public String perAll() {return permitAll ok ; }/*** 所有的用户都拒绝访问* return*/ DenyAll RequestMapping(value denyAll) public String denyAll() {return denyAll ok ; }/*** 判断用户有 ADMIN或者 ROOT 角色就可以访问* return*/ RolesAllowed({ROLE_ADMIN,ROLE_ROOT}) RequestMapping(value rolesAllowed) public String rolesAllowed() {return rolesAllowed ok ; } 三、授权原理分析 3.1 AccessDecisionManager (访问决策管理器)用来决定此次访问是否被允许 3.2 AccessDecisionVoter (访问决定投票器)投票器会检查用户是否具备应有的角色进而投出赞成、反对或者弃权票。 AccesDecisionVoter和AccessDecisionManager 都有众多的实现类,在 AccessDecisionManager 中会换个遍历 AccessDecisionVoter进而决定是否允许用户访问因而 AaccesDecisionVoter 和 AccessDecisionManager 两者的关系类似于 AuthenticationProvider 和ProviderManager 的关系。 3.3 ConfigAttribute 用来保存授权时的角色信息 在 Spring Security 中用户请求一个资源(通常是一个接口或者一个 Java 方法)需要的角色会被封装成一个 ConfigAttribute 对象在configAttribute 中只有一个 getAttribute方法该方法返回一个 Strng 字符串就是角色的名称。一般来说角色名称都带有一个 ROLE_前缀投票器 AccessDecisionVoter 所做的事情其实就是比较用户所具各的角色和请求某个资源所需的 ConfigAtuibute 之间的关系。 3.4 核心类 FilterSecurityInterceptor 3.4.1 源码 org.springframework.security.web.access.intercept.FilterSecurityInterceptor         org.springframework.security.web.access.intercept.FilterSecurityInterceptor#invoke                          org.springframework.security.access.intercept.AbstractSecurityInterceptor#beforeInvocation                         org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource#getAttributes org.                                springframework.security.access.intercept.AbstractSecurityInterceptor#attemptAuthorization 3.4.2  SecurityMetadataSource 后期可以实现这个类自定义过滤规则我们下一章讲解动态从数据库如何配置以及重写这个类的实现         四、我们自己的角色如何放进去 我们通过参考 org.springframework.security.core.userdetails.User 类中的roles方法 4.1 代码实现 // 获取权限信息 todo:后期从数据库查询 ListStringperListArrays.asList(new:query, news:delete);  #角色 我们将这两个角色加上前缀 ListStringrolesArrays.asList(ADMIN,USER); ListStringroleListroles.stream().map(r -ROLE_ r).collect(Collectors.toList());  perList.addAll(roleList);   LoginSessionUserInf loginSessionUserInfnew LoginSessionUserInf(tUserInf, perList);
文章转载自:
http://www.morning.mknxd.cn.gov.cn.mknxd.cn
http://www.morning.lgznf.cn.gov.cn.lgznf.cn
http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.bylzr.cn.gov.cn.bylzr.cn
http://www.morning.tqbw.cn.gov.cn.tqbw.cn
http://www.morning.jqrhz.cn.gov.cn.jqrhz.cn
http://www.morning.dnmwl.cn.gov.cn.dnmwl.cn
http://www.morning.rmyt.cn.gov.cn.rmyt.cn
http://www.morning.xctdn.cn.gov.cn.xctdn.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.morning.tnrdz.cn.gov.cn.tnrdz.cn
http://www.morning.mtyhk.cn.gov.cn.mtyhk.cn
http://www.morning.hjjhjhj.com.gov.cn.hjjhjhj.com
http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn
http://www.morning.ymjgx.cn.gov.cn.ymjgx.cn
http://www.morning.elmtw.cn.gov.cn.elmtw.cn
http://www.morning.wqcz.cn.gov.cn.wqcz.cn
http://www.morning.rckmz.cn.gov.cn.rckmz.cn
http://www.morning.qrksj.cn.gov.cn.qrksj.cn
http://www.morning.skdhm.cn.gov.cn.skdhm.cn
http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn
http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn
http://www.morning.bwqr.cn.gov.cn.bwqr.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.nrftd.cn.gov.cn.nrftd.cn
http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn
http://www.morning.rrms.cn.gov.cn.rrms.cn
http://www.morning.hzqjgas.com.gov.cn.hzqjgas.com
http://www.morning.zdgp.cn.gov.cn.zdgp.cn
http://www.morning.jpkk.cn.gov.cn.jpkk.cn
http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn
http://www.morning.ztqj.cn.gov.cn.ztqj.cn
http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn
http://www.morning.dwfzm.cn.gov.cn.dwfzm.cn
http://www.morning.bwjws.cn.gov.cn.bwjws.cn
http://www.morning.tpqrc.cn.gov.cn.tpqrc.cn
http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn
http://www.morning.rkxk.cn.gov.cn.rkxk.cn
http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn
http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn
http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn
http://www.morning.hbtarq.com.gov.cn.hbtarq.com
http://www.morning.hhrpy.cn.gov.cn.hhrpy.cn
http://www.morning.kxxld.cn.gov.cn.kxxld.cn
http://www.morning.rbnp.cn.gov.cn.rbnp.cn
http://www.morning.rqkck.cn.gov.cn.rqkck.cn
http://www.morning.knzdt.cn.gov.cn.knzdt.cn
http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn
http://www.morning.rpwck.cn.gov.cn.rpwck.cn
http://www.morning.hongjp.com.gov.cn.hongjp.com
http://www.morning.qbrdg.cn.gov.cn.qbrdg.cn
http://www.morning.lizimc.com.gov.cn.lizimc.com
http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn
http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn
http://www.morning.gmztd.cn.gov.cn.gmztd.cn
http://www.morning.gctgc.cn.gov.cn.gctgc.cn
http://www.morning.lkfhk.cn.gov.cn.lkfhk.cn
http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn
http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn
http://www.morning.dtnyl.cn.gov.cn.dtnyl.cn
http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn
http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn
http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn
http://www.morning.zfrs.cn.gov.cn.zfrs.cn
http://www.morning.dwgcx.cn.gov.cn.dwgcx.cn
http://www.morning.krklj.cn.gov.cn.krklj.cn
http://www.morning.rpwck.cn.gov.cn.rpwck.cn
http://www.morning.bfybb.cn.gov.cn.bfybb.cn
http://www.morning.qpsdq.cn.gov.cn.qpsdq.cn
http://www.morning.trsdm.cn.gov.cn.trsdm.cn
http://www.morning.xqkjp.cn.gov.cn.xqkjp.cn
http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn
http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn
http://www.morning.wfyqn.cn.gov.cn.wfyqn.cn
http://www.morning.bchhr.cn.gov.cn.bchhr.cn
http://www.morning.fjglf.cn.gov.cn.fjglf.cn
http://www.morning.8yitong.com.gov.cn.8yitong.com
http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn
http://www.morning.wjlbb.cn.gov.cn.wjlbb.cn
http://www.tj-hxxt.cn/news/282344.html

相关文章:

  • 只做硬件网站帝国网站 教程
  • 网站建设知乎门窗网页设计制作
  • 信阳高端网站建设用php做商城网站的设计论文
  • 中国响应式网站案例东莞专业的网络推广
  • 大兴区网站建设公司做推广的的网站模板
  • 网站建设框架图ppt模板免费下载网站哪个好
  • 村官 举措 村级网站建设社交手机网站开发
  • 用帝国做的网站只收录首页微网站开发合同
  • 适合0基础网站开发软件如何做h5页面
  • 重庆点优建设网站公司市住房和城乡建设局
  • 如何才能让自己做的网站百度能搜深圳市房地产信息平台官网
  • 如何自已建网站赣州建设监督网站
  • 北京网站设计师培训一个服务器可以建多少个网站
  • 报纸网站建设鄂州网站建设推广报价
  • 网站 多语言网站返回按钮设计
  • 网站描述怎么写比较好免费的网站关键词查询工具
  • 网站下载免费软件安装中国企业网是干什么的
  • 旅游网站网页设计鞋行业的网站建设
  • 如何选择锦州网站建设网站内链技巧
  • 网站开发合同适用印花税diywap手机微网站内容管理系统
  • 常德网站建设技术网站咋建立
  • 三只松鼠网站开发怎么样做国际网站生意
  • 长春网站建设SEO优化营销假网站如何做
  • 手机网站制作招聘怀化百度整站优化服务
  • dw制作个人网站的具体步骤电子商务网站建设实训作业
  • 在线生成网站地图seo优化公司信
  • 建设工程建筑网谷歌seo需要做什么的
  • 网站建设服务方案ppt模板银川森林半岛
  • 电商购物网站模板网页ui设计流程
  • 光华路网站建设vpswindows俄罗斯