当前位置: 首页 > 知识库问答 >
问题:

CRUB,前端认证问题,spring security

严正诚
2023-03-14

4天,我找不到任何解决方案。我有后端的Spring靴和前端的反应。如何在我的首页上创建登录系统和会话?我有两个控制器要测试。

@GetMapping("/protected")
    public String showProtected() {
        return "protected page";
    }

    @GetMapping("/public")
    public String showPublic(){
        return "public page";
    }

在服务器站点“localhost:8080/protected and/public”上,一切正常,当im未经身份验证时返回登录表单,然后我可以使用凭据登录。我怎样才能在我的定制头版上做到完全一样呢?我只能用以下内容显示我的公共页面:

axios.get("http://localhost:8080/account/public")
            .then(response => this.setState({stuff: response.data}))

如何在前端页面上使用自定义登录表单进行登录会话,以获取受保护的页面?这是我的安全配置:

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .and()
                .authorizeRequests()
                .antMatchers("/login").permitAll()
                .antMatchers("/account/protected").hasRole(USER)
                .antMatchers("/account/public").permitAll()
                .antMatchers("/account/register").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .and()
                .httpBasic();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
    }

    @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("*"));
        configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"));
        configuration.setAllowedHeaders(Arrays.asList("authorization", "content-type", "x-auth-token", "x-xsrf-token", "access-control-allow-headers", "access-control-allow-methods", "access-control-allow-origin"));
        configuration.setExposedHeaders(Arrays.asList("x-auth-token"));
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }

共有1个答案

元望
2023-03-14

您有/account/protected by user/role user。因此,您应该将身份验证过程返回的令牌发送到安全路由

axios.get('http://localhost:8080/protected', {
            headers: {
                'authorization': localStorage.getItem('token'),
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            }
        }).then(res => {
            resolve(res);
        }).catch(error => {
            reject(error.message);
        });

希望对你有用祝你好运

 类似资料:
  • 我试图用手机登录。每次我输入手机号码时,它都会显示这些错误消息并退出应用程序。我使用了https://firebase.flutter.dev/docs/auth/phone留档中的代码。代码几乎与留档相同。 我正在为Java/Flatter/Firebase sdk等所有东西使用更新版本。我还在Firebase应用程序中添加了SHA1密钥,并启用了手机认证。我还尝试了物理和虚拟设备。但每次都是同

  • 我正在使用wordpress rest api的JWT认证插件进行api访问认证,但问题是< code > https://example . com/WP-JSON/jwt-auth/v1/token 正在生成不允许的错误。 例如,如果我尝试在postman中运行此url``https://example.com/wp-json/jwt-auth/v1/token`该API还需要身份验证,因为它

  • 1. 企业认证失败怎么办? 检查上传的营业执照复印件是否清晰,加盖印章是否清晰; 检查上传的授权书书否清晰,加盖印章是否清晰; 检查管理员姓名、身份证号是否有误; 2. 小程序审核失败有哪些因素? 小程序审核失败的常见原因可能有如下内容: 小程序名称、logo不符合开放平台运营规范; 小程序简介与小程序应用不符; 小程序无法在审核APP(凡泰助手)内打开; 小程序汇总存在严重 BUG(如无法打开,

  • 我试图下载MNIST数据,这应该是处理: 张量流。例子。教程。mnist。输入数据。读取数据集() 据我所知,read_data_sets向服务器发送一个pull请求,以下载(约)1.5GB的数据。 我一直收到这个回溯错误: 文件"/库/框架/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",第1318行,do_opene

  • 请大佬帮忙分析一下,以下代码执行顺序(正确的顺序是:a 1 2 3 b 4 c 5):

  • 在个人中心已经认证过,并且显示已经认证,但是在创建对象存储时候显示未认证是什么鬼? 多次尝试刷新 创建等 均是该错误