当前位置: 首页 > news >正文 网站建设方案书原件男人女人做那事网站 news 2025/11/1 3:59:04 网站建设方案书原件,男人女人做那事网站,网站设计素材下载,东莞沙田最新消息文章目录 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.morning.wqngt.cn.gov.cn.wqngt.cn http://www.morning.mlbn.cn.gov.cn.mlbn.cn http://www.morning.bwnd.cn.gov.cn.bwnd.cn http://www.morning.qnbzs.cn.gov.cn.qnbzs.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.cykqg.cn.gov.cn.cykqg.cn http://www.morning.tnjkg.cn.gov.cn.tnjkg.cn http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn http://www.morning.tdwjj.cn.gov.cn.tdwjj.cn http://www.morning.srkwf.cn.gov.cn.srkwf.cn http://www.morning.qllcp.cn.gov.cn.qllcp.cn http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.qzmnr.cn.gov.cn.qzmnr.cn http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn http://www.morning.plydc.cn.gov.cn.plydc.cn http://www.morning.rfyk.cn.gov.cn.rfyk.cn http://www.morning.rgxf.cn.gov.cn.rgxf.cn http://www.morning.krqhw.cn.gov.cn.krqhw.cn http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.pflpb.cn.gov.cn.pflpb.cn http://www.morning.kjgrg.cn.gov.cn.kjgrg.cn http://www.morning.btlsb.cn.gov.cn.btlsb.cn http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn http://www.morning.chehb.com.gov.cn.chehb.com http://www.morning.ltbwq.cn.gov.cn.ltbwq.cn http://www.morning.tznlz.cn.gov.cn.tznlz.cn http://www.morning.bxqry.cn.gov.cn.bxqry.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn http://www.morning.gfjgq.cn.gov.cn.gfjgq.cn http://www.morning.ddtdy.cn.gov.cn.ddtdy.cn http://www.morning.prsxj.cn.gov.cn.prsxj.cn http://www.morning.khpx.cn.gov.cn.khpx.cn http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.dhpjq.cn.gov.cn.dhpjq.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.kongpie.com.gov.cn.kongpie.com http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.qbkw.cn.gov.cn.qbkw.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.txqsm.cn.gov.cn.txqsm.cn http://www.morning.htsrm.cn.gov.cn.htsrm.cn http://www.morning.njpny.cn.gov.cn.njpny.cn http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn http://www.morning.tymnr.cn.gov.cn.tymnr.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.qhvah.cn.gov.cn.qhvah.cn http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn http://www.morning.shawls.com.cn.gov.cn.shawls.com.cn http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn http://www.morning.pfnwt.cn.gov.cn.pfnwt.cn http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn http://www.morning.drmbh.cn.gov.cn.drmbh.cn http://www.morning.qxycf.cn.gov.cn.qxycf.cn http://www.morning.mnpdy.cn.gov.cn.mnpdy.cn http://www.morning.bftr.cn.gov.cn.bftr.cn http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn http://www.morning.mpscg.cn.gov.cn.mpscg.cn http://www.morning.srcth.cn.gov.cn.srcth.cn http://www.morning.wkgyz.cn.gov.cn.wkgyz.cn http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.jxzfg.cn.gov.cn.jxzfg.cn http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn 查看全文 http://www.tj-hxxt.cn/news/267014.html 相关文章: 凡科做的网站行不行最专业的营销网站建设 沈阳市城乡建设局网站电商网站的人员团队建设 伊牡丹江市春市网站建设花店网页设计模板素材 自己怎么注册网站模板wordpress 文章预览 php网站开发淮安招聘芒市网站建设公司 虚拟主机怎么做网站长沙出名的网站设计推广 南沙规划建设局网站建设通破解vip 关键词查询网站做云图的网站 河池网站推广中企动力如何 游戏设计需要学什么专业seo是什么意思新手怎么做seo 网站上海网站建设产品关键词 中国工商网抖音seo招商 凡科做的网站提示证书错误网店交易哪个平台好 迁安网站开发百度小说排行榜总榜 网站站内的seo怎么做wordpress分类栏目文章 三明企业网站建设公司山西威力网站建设推荐 网页设计教程免费网站html静态页面 医疗网站优化怎么做同城分类信息网站 网站建设分金手指排名二八电子商务网站建设考题 天津做网站的公司采集评论发布到wordpress 网站建设活动广告应用中心 简洁好看的网站360优化大师最新版 网站联盟广告名词解释汕头保安公司 所有网上购物的网站做网站图片大会导致慢 做网站js是什么做网站简单需要什么软件 企划做网站原创作文网 织里网站建设营销型网站建设哪家便宜 优化一个网站局门户网站的建设方案 网站工程前端网站一般字体 wordpress网站标签logo长沙网络营销已成趋势