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

h5网站做微信公众号东营网站建设预算价格

h5网站做微信公众号,东营网站建设预算价格,开发定制电商平台,商场设计师文章目录 SpringSecurity 第三方认证实现方法级别的安全 SpringSecurity 第三方认证 在登录网页时#xff0c;时常有用其他账号登录的方式#xff0c;它们能够让用户避免在Web站点特定的登录页上自己输入凭证信息。这样的Web站点提供了一种通过其他网站#xff08;如Facebo… 文章目录 SpringSecurity 第三方认证实现方法级别的安全 SpringSecurity 第三方认证 在登录网页时时常有用其他账号登录的方式它们能够让用户避免在Web站点特定的登录页上自己输入凭证信息。这样的Web站点提供了一种通过其他网站如Facebook登录的方式用户可能已经在这些其他的网站登录过了 这种类型的认证是基于OAuth2或OpenID Connect(OIDC)的。OAuth2是一个授权规范。OpenID Connect是另一个基于OAuth2的安全规范用于规范化第三方认证过程中发生的交互 要在Spring应用中使用这种类型的认证我们需要在构建文件中添加OAuth2客户端的starter依赖如下所示 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-oauth2-client/artifactId /dependency接下来至少要配置一个或多个oauth2或者openID Connect服务器的详细信息也可以通过一些额外的属性来配置其他客户端 首先有一些通用的属性需要设置通用格式如下 spring:security:oauth2:client:registration:oauth2 or openid provider name:clientId: client idclientSecret: client secretscope: comma-separated list of requested scopes比如说使用fb登录 spring:security:oauth2:client:registration:facebook:clientId: facebook client idclientSecret: facebook client secretscope: email, public_profile其中客户端ID和secret是用来标识我们的应用在Facebook中的凭证。你可以在Facebook的开发者网站新建应用来获取客户端ID和secret。scope属性可以用来指定应用的权限范围 当用户尝试访问需要认证的页面时就会重定向至认证页面他们会被要求根据所请求的权限范围对我们的应用程序授权。最后用户会被重新定向到我们的应用程序此时他们已经完成了认证 但是我们如果通过声明SecurityFilterChain bean来自定义安全配置那么除了其他的安全配置还需要启用OAuth2登录如下所示 Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {return http.authorizeRequests().mvcMatchers(/design, /orders).hasRole(USER).anyRequest().permitAll().and().formLogin().loginPage(/login).and().oauth2Login()....and().build(); }如果同时需要支持传统的通过用户名和密码登录可以在配置中指定登录页如下所示 .and().oauth2Login().loginPage(/login)应用程序始终都会为用户展示一个它本身提供的登录页在这里用户可以像往常一样选择输入用户名和密码进行登录。但是我们也可以在同一个登录页上提供一个链接从而允许用户使用Facebook登录。在登录页面的HTML模板中这样的链接如下所示: a th:href /oauth2/authorization/facebookSign in with Facebook/a接下来如何退出应用只需在HttpSecurity对象上调用方法 .and().logout()该配置会建立一个安全过滤器拦截对“/logout”的POST请求。所以为了提供退出功能我们只需要为应用的视图添加一个退出表单和按钮如下所示 form method POST th:action {/logout}input type submit value Logout/ /form用户点击按钮的时候他们的会话将会被清理这样他们就退出应用了。默认情况下用户会被重定向到登录页面这样他们可以重新登录。但是如果你想要将他们导航至不同的页面那么可以调用logoutSuccessUrl()指定退出后的页面如下所示 .and().logout().logoutSuccessUrl(/)实现方法级别的安全 Web请求层面考虑安全问题很容易但这一层面不一定是进行安全限制的最佳场所。有时候最好在执行受保护的操作时再去校验一下用户是否通过了验证并被授予了足够的权限。 比如说当多个控制器调用同个方法时就需要添加更多的匹配器来保护其他控制器的请求作为替代方案可以直接在方法上启用安全防护 PreAuthorize(hasRole(ADMIN)) public void deleteAllOrders() {orderRepository.deleteAll(); }PreAuthorize注解会接受一个SpEL表达式如果表达式的计算结果为false这个方法将不会被调用如果表达式的计算结果为true方法就允许调用。在本例中PreAuthorize会检查用户是否具有ROLE_ADMIN的权限如果具有方法将会被调用所有的订单会被删除否则它会将调用中止 如果PreAuthorize阻止调用那么Spring Security将会抛出AccessDeniedException。这是一个非检查型异常所以我们不需要捕获它除非想要在异常处理中添加一些自定义的行为。如果我们不捕获它它将会往上传递最终被Spring Security的过滤器捕获并进行相应的处理——要么返回HTTP 403页面要么在用户没有认证的情况返回HTTP 403页面要么在用户没有认证的情况下重定向到登录页面 要使PreAuthorize发挥作用需要启用全局的方法安全功能。为了实现这一点需要使用EnableGlobalMethodSecurity注解标注安全配置类如下所示 Configuration EnableGlobalMethodSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {... }PostAuthorize注解 它用在方法调用之后通常来讲用处不是特别大。PostAuthorize注解的运行机制和PreAuthorize注解基本相同只不过它的表达式是在目标方法调用完成并返回之后执行的。这样一来在决定是否允许方法调用的时候就能让表达式使用方法的返回值了 假设我们有一个能够根据ID来获取订单的方法。我们如果想限制这个方法使其只能被管理员或订单所属的用户使用就可以像这样使用PostAuthorize注解 PostAuthorize(hasRole(ADMIN) || returnObject.user.username authentication.name) public TacoOrder getOrder(long id) {... }如果判定安全的条件依赖于方法调用的返回值那么该如何保证方法不被调用呢我们可以先允许方法调用并在表达式返回值为false时抛出一个AccessDeniedException从而解决这个难题。
http://www.zqtcl.cn/news/373874/

相关文章:

  • 怎样做网站能百度能搜到设计网站公司哪里好
  • 网站收缩栏专业定制网站公司
  • 烟台网站建设方案托管无锡网站制作企业
  • 网站网页是怎么做的用什么做网站 优化
  • 数据网站怎么做的网站开发的开题报告引言
  • 苏州专业网站制作设计做网站上海
  • 做网站可以用中文域名备案嘛山东省住房和城乡城乡建设厅网站
  • 网站建设推广多少钱站长工具seo综合查询关键词
  • 分类信息网站平台的推广做网站的花费
  • 还原wordpress站点地址恢复网站都要备案吗
  • 如何建立营销性企业网站论文如何修改wordpress
  • 全网营销销售郑州seo网站管理
  • dw怎么做网站首页邯郸网站建设品牌加盟
  • 辽宁省建筑工程造价信息网深圳市seo点击排名软件价格
  • 网站建设宗旨是指建设中英文网站
  • 浙江网站建设价格低东莞网站建设推广多少钱
  • 网站服务器重做系统怎么做快速提升网站权重
  • 怎么做自己的html网站网站收录不好的原因
  • 武夷山住房和城乡建设局网站网站提权
  • 电 器建设网站目的及功能定位百度的网站域名
  • 个人备案网站类型网站制作 徐州
  • 北京网站建设推贵州能源网站 中企动力建设
  • 鲅鱼圈网站在哪做vs2013网站开发教程
  • 花艺企业网站建设规划wordpress首页文件
  • 东莞建站模板源码交易所网站开发
  • p2p理财网站开发流程新手怎么搭建网站
  • 阅读网站策划书网站模板建站教程视频
  • 计算机网站开发毕业设计论文开题报告吴中区网站建设技术
  • cdn能为网站上宁波北仑做公司网站
  • wap网站分享到微信福建漳州建设局网站