第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

只有在拋出運行時異常時才發(fā)現(xiàn)線程綁定請求

只有在拋出運行時異常時才發(fā)現(xiàn)線程綁定請求

哈士奇WWW 2022-05-12 18:59:18
我需要在我的代碼上使用請求范圍來獲取和使用 JWT 令牌上的授權(quán),每個請求都有一個單獨的令牌,每個請求都需要一個獨立的驗證。當(dāng)任何請求過程沒有任何錯誤時,一切正常,但如果應(yīng)用程序拋出任何運行時異常,例如 BadRequestException,響應(yīng)中斷:java.lang.IllegalStateException: No thread-bound request found我正在使用帶有 Ribbon、Feign 和 Hystrix 的 Spring 云環(huán)境。這里的 WebSecurityConfigurerAdapter 實現(xiàn):    @Override    protected void configure(HttpSecurity http) throws Exception {        http.cors()                .and()                .authorizeRequests()                .antMatchers(HttpMethod.OPTIONS, "/**").permitAll()                .anyRequest().authenticated()                .and()                .addFilterBefore(new JWTAuthenticationFilter(enviroment, jwtAuthenticationService, authScope),                        UsernamePasswordAuthenticationFilter.class)                .httpBasic()                .and()                .csrf().disable();        http.headers().frameOptions().sameOrigin();    }我之前的過濾器    package br.com.qisi.twoface.configuration.security.jwt;    import br.com.qisi.twoface.authorization.model.Authorization;    import br.com.qisi.twoface.configuration.security.AuthRequestScope;    import io.jsonwebtoken.Claims;    import org.springframework.security.core.Authentication;    import org.springframework.security.core.context.SecurityContextHolder;    import org.springframework.web.filter.GenericFilterBean;    import javax.servlet.FilterChain;    import javax.servlet.ServletException;    import javax.servlet.ServletRequest;    import javax.servlet.ServletResponse;    import javax.servlet.http.HttpServletRequest;    import javax.servlet.http.HttpServletResponse;    import java.io.IOException;    }
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

根據(jù)@dur 評論,我將代碼更改為使用 SecurityContextHolder 并獲取當(dāng)前線程上下文授權(quán)。


我現(xiàn)在的組件:


    @Component

    public class AuthRequestInfo {


        private AuthorizationService authorizationService;


        public AuthRequestInfo(AuthorizationService authorizationService) {

            this.authorizationService = authorizationService;

        }


        public Authorization getAuthorization(){

            Claims claims = (Claims)SecurityContextHolder.getContext().getAuthentication().getPrincipal();

            String key = claims.get(KEY_CLAIM).toString();

            return this.authorizationService.findByExampleOptional(Authorization.builder().key(key).build())

                    .orElseThrow(new UnauthorizedException(INVALID_TWOFACE_AUTHORIZATION_HEADER));

        }


    }

SecurityContextHolder 身份驗證是在 GenericFilterBean 上設(shè)置的?,F(xiàn)在我沒有問題。


查看完整回答
反對 回復(fù) 2022-05-12
  • 1 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號