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

18款禁用网站app直播恢复原来的网站

18款禁用网站app直播,恢复原来的网站,网站建设开拓该行业的难点疑,问信息奥赛题怎么做 去哪个网站SpringSecurity-2.7中跨域问题 访问测试 起因 写这篇的起因是会了解到 SSM(CrosOrigin)解决跨域,但是会在加入SpringSecurity配置后,这个跨域解决方案就失效了,而/login这个请求上是无法添加这个注解或者通过配置(WebMvcConfig)去解决跨域,所以只能使用SpringSecurity提供的.c…

SpringSecurity-2.7中跨域问题

访问测试
  • 起因

    写这篇的起因是会了解到 SSM(@CrosOrigin)解决跨域,但是会在加入SpringSecurity配置后,这个跨域解决方案就失效了,而/login这个请求上是无法添加这个注解或者通过配置(WebMvcConfig)去解决跨域,所以只能使用SpringSecurity提供的.cros()去解决跨域,但是在学习过程中,如果稍微粗心,可能会出现跨域不通的问题,而以下将会说明SpringSecurity是如何配置跨域的

  • Postman发起的请求不属于异步请求(区分前后端分离的JSON)
    区分该请求

  • 使用axios发起异步请求,

    <!-- 前端: 使用 Live Server 启动访问 http://127.0.0.1:5500/index.html后端: localhost:8080/login -->
    <!DOCTYPE html>
    <html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><button id="btn">发起异步请求</button><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>let btnEl = document.querySelector('#btn');btnEl.onclick = function () {console.log('click......................');axios({url: 'http://localhost:8080/login',method: 'post',data: {username: 'zhangsan',password: '123456',},}).then((res) => {console.log(res);});};</script></body>
    </html>
  • 请求测试
    真正的异步请求

SpringSecurity-配置

  • config

    // 【/login】需要显示的声明出来,在前后端分离中,本文没有采用的是 ajax 向后端发送异步请求 
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {/*** 请求配置* authorizeHttpRequests: 开启权限请求管理,针对 http 请求进行授权配置* mvcMatchers: 匹配请求* - permitAll: 代表放行该资源,该资源位公共资源,无需认证和授权可以直接访问* - anyRequest().authenticated(): 代表所有请求,必须认证之后才能访问* - formLogin: 代表开启表单认证* <strong>放行资源必须放在认证资源之前</strong>*/http.authorizeHttpRequests((authorizeHttpRequests) ->authorizeHttpRequests// 预检请求是怎么知道的:官网中有这样一段描述,如图.antMatchers(HttpMethod.OPTIONS, "/login").permitAll().anyRequest().authenticated());/*** 跨域配置*/http.cors().configurationSource(corsConfigurationSource());// WHITELIST 自定义的放行资源数组, /login不能出现在里面
    @Bean
    public WebSecurityCustomizer webSecurityCustomizer() {return (web) -> web.ignoring().antMatchers(WHITELIST);
    }
    }
    // 此处关于下方的描述可以不更改,依然使用此配置
    @Bean
    CorsConfigurationSource corsConfigurationSource() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); // 新建一个跨域配置源// 你只要点击 .cors().configurationSource( <- 点击进入这个方法,查看出这个参数,就明白为什么给了 CorsConfiguration,)CorsConfiguration configuration = new CorsConfiguration(); // 新建一个跨域配置configuration.setAllowCredentials(true); // 【这个凭证问题,后续会给出详细解释,在 axios 的配置中默认是false,【axios 中 `withCredentials` 表示跨域请求时是否需要使用凭证】浏览器是否应当发送凭证信息,如cookie。configuration.setAllowedMethods(Arrays.asList("*")); // 允许的请求方法,*表示允许所有方法configuration.setAllowedHeaders(Arrays.asList("*")); // 允许的请求头,*表示允许所有头configuration.setMaxAge(Duration.ofHours(1)); // 预检请求的有效期,有效期内不必再次发送,默认是1800秒。configuration.setAllowedOriginPatterns(Arrays.asList("*"));// 允许的请求源source.registerCorsConfiguration("/**", configuration); // 注册跨域配置return source;
    }

    2-1

  • 以上配置其实可以算正确,但是有合规

    在调试后发现,只需要将/login加入(.antMatchers("/login").permitAll()),在所看到的视频中的关于SpringSecurity的跨域就生效了,也可以不将预检配置出来

http://www.yayakq.cn/news/880887/

相关文章:

  • 千城网站建设中山网站设计素材
  • 网站建设是 口号网站的开发流程
  • 专业网站托管的公司讲究 网站
  • 赤峰做网站建设的企业江苏省做网站
  • 网站建设宣传的目的项目设计课题研究高中综合评价
  • 校园网站建设计划做网站 做app
  • 没有版权的图片网站毕业设计代做网站有哪些
  • 如何把网站一个栏目做301跳转贵港哪里有网站建设推广
  • 外贸网站建设加推广郑州全网营销推广
  • 昆明网站建设优化图片搜狗推广管家下载
  • 广东网站建设专业公司哪家好网络营销策略案例分析
  • 云主机开网站教程深圳注册公司注册地址要求
  • 做网站的公司广州wordpress单栏主题 极简
  • 平台网站定制微信开店怎么注册开店流程
  • 网站开发攻略怎么网站建设公司
  • 知乎做笔记的网站seo短视频发布
  • 四川建设银行手机银行下载官方网站下载安装做微网站的第三方
  • 怎么随便搞个网站讨债公司 做网站
  • 旅游网站制作分析福州男同性做基网站
  • 可信网站验证服务外包公司的人好跳槽吗
  • 网站怎么做图片动态图片大全武邑网站建设价格
  • 做静态页面的网站济南智能网站建设咨询电话
  • seo网站推广是什么意思wordpress 页面属性 父级
  • 做外贸大一点的网站门户网站的建设公司
  • 卡地亚手表官方网站查询浙江响应式网站建设制作
  • 有人上相亲网站做传销燕窝做互联网小程序 和网站有没有前景
  • 西青做网站的公司网站版面
  • 手表网站制作西安建筑人才网
  • 网站在开发过程中如何做SEO天津建设网站天津市地铁规划图
  • 南京网站开发联系南京乐识手机上怎么创建wordpress