日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Boot 2結合Spring security + JWT實現微信小程序登錄

瀏覽:198日期:2022-06-25 08:45:35

項目源碼:https://gitee.com/tanwubo/jwt-spring-security-demo

登錄

通過自定義的WxAppletAuthenticationFilter替換默認的UsernamePasswordAuthenticationFilter,在UsernamePasswordAuthenticationFilter中可任意定制自己的登錄方式。

用戶認證

需要結合JWT來實現用戶認證,第一步登錄成功后如何頒發token。

public class CustomAuthenticationSuccessHandler implements AuthenticationSuccessHandler { @Autowired private JwtTokenUtils jwtTokenUtils; @Override public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException { // 使用jwt管理,所以封裝用戶信息生成jwt響應給前端 String token = jwtTokenUtils.generateToken(((WxAppletAuthenticationToken)authentication).getOpenid()); Map<String, Object> result = Maps.newHashMap(); result.put(ConstantEnum.AUTHORIZATION.getValue(), token); httpServletResponse.setContentType(ContentType.JSON.toString()); httpServletResponse.getWriter().write(JSON.toJSONString(result)); }}

第二步,棄用spring security默認的session機制,通過token來管理用戶的登錄狀態。這里有倆段關鍵代碼。

@Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable().sessionManagement()// 不創建Session, 使用jwt來管理用戶的登錄狀態.sessionCreationPolicy(SessionCreationPolicy.STATELESS)......; }

第二步,添加token的認證過濾器。

public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { @Autowired private AuthService authService; @Autowired private JwtTokenUtils jwtTokenUtils; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { log.debug('processing authentication for [{}]', request.getRequestURI()); String token = request.getHeader(ConstantEnum.AUTHORIZATION.getValue()); String openid = null; if (token != null) { try {openid = jwtTokenUtils.getUsernameFromToken(token); } catch (IllegalArgumentException e) {log.error('an error occurred during getting username from token', e);throw new BasicException(ExceptionEnum.JWT_EXCEPTION.customMessage('an error occurred during getting username from token , token is [%s]', token)); } catch (ExpiredJwtException e) {log.warn('the token is expired and not valid anymore', e);throw new BasicException(ExceptionEnum.JWT_EXCEPTION.customMessage('the token is expired and not valid anymore, token is [%s]', token)); }catch (SignatureException e) {log.warn('JWT signature does not match locally computed signature', e);throw new BasicException(ExceptionEnum.JWT_EXCEPTION.customMessage('JWT signature does not match locally computed signature, token is [%s]', token)); } }else { log.warn('couldn’t find token string'); } if (openid != null && SecurityContextHolder.getContext().getAuthentication() == null) { log.debug('security context was null, so authorizing user'); Account account = authService.findAccount(openid); List<Permission> permissions = authService.acquirePermission(account.getAccountId()); List<SimpleGrantedAuthority> authorities = permissions.stream().map(permission -> new SimpleGrantedAuthority(permission.getPermission())).collect(Collectors.toList()); log.info('authorized user [{}], setting security context', openid); SecurityContextHolder.getContext().setAuthentication(new WxAppletAuthenticationToken(openid, authorities)); } filterChain.doFilter(request, response); }}接口鑒權

第一步,開啟注解@EnableGlobalMethodSecurity。

@SpringBootApplication@EnableGlobalMethodSecurity(prePostEnabled = true)public class JwtSpringSecurityDemoApplication { public static void main(String[] args) { SpringApplication.run(JwtSpringSecurityDemoApplication.class, args); }}

第二部,在需要鑒權的接口上添加@PreAuthorize注解。

@RestController@RequestMapping('/test')public class TestController { @GetMapping @PreAuthorize('hasAuthority(’user:test’)') public String test(){ return 'test success'; } @GetMapping('/authority') @PreAuthorize('hasAuthority(’admin:test’)') public String authority(){ return 'test authority success'; }}

到此這篇關于Spring Boot 2結合Spring security + JWT實現微信小程序登錄的文章就介紹到這了,更多相關Spring Boot Spring security JWT微信小程序登錄內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微信
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆久久久久久久| 国产精品4hu.www| 日本免费久久| 精品久久美女| 国产成人免费精品| а√天堂中文在线资源8| 精品国产免费人成网站| 色一区二区三区| 久久久精品午夜少妇| 99视频精品视频高清免费| 亚洲一级二级| 99亚洲视频| 亚洲免费影视| 蜜桃视频一区二区三区在线观看| 欧美专区18| 日韩精品高清不卡| 欧美日韩亚洲一区二区三区在线 | 国产精品v日韩精品v欧美精品网站| 日韩高清一区二区| 国产精品xxx在线观看| 国产拍在线视频| 婷婷综合网站| 亚洲啊v在线免费视频| 国产日韩一区二区三区在线 | 日韩高清二区| 日本aⅴ亚洲精品中文乱码| 国产精品亚洲综合在线观看| 国产一区二区三区黄网站| 国产精品成人一区二区不卡| 久久久久免费av| 日韩午夜免费| 久久精品99国产国产精| 97精品在线| 国产视频一区免费看| 日韩国产在线观看| 岛国av在线播放| 夜夜嗨av一区二区三区网站四季av| 亚洲精品一区二区在线播放∴| 久久av免费| 成人免费电影网址| 免费久久久久久久久| 亚洲一级淫片| 国产91在线播放精品| 日韩亚洲精品在线| 国产精品一区二区av日韩在线| 成人在线网站| 日韩极品在线观看| 日韩国产在线| 亚久久调教视频| 丰满少妇一区| 夜久久久久久| 国产精品va| 午夜欧美精品| 久久国产精品美女| 91久久午夜| 欧美天堂一区| 蜜臀久久99精品久久一区二区 | 国产精品.xx视频.xxtv| 久久久久99| 久久精品 人人爱| 亚洲大全视频| 麻豆精品在线视频| 石原莉奈在线亚洲三区| 电影91久久久| 日本不卡视频在线观看| 亚洲成人不卡| 国产探花一区| 国产精品91一区二区三区| 日韩手机在线| 99成人超碰| 国产乱码精品一区二区三区四区 | 麻豆一区在线| 亚洲欧美久久久| 国产一区福利| 69堂精品视频在线播放| 婷婷久久一区| 中文字幕在线视频网站| 国产私拍福利精品视频二区| 亚洲午夜av| 精品久久免费| 91欧美极品| 99亚洲视频| 久久久久久久久丰满| 国产亚洲久久| 蜜臀av在线播放一区二区三区| 日韩国产综合| 国产精品流白浆在线观看| 国产免费成人| 欧美一区二区性| 色婷婷亚洲mv天堂mv在影片| 欧美精品影院| 亚洲综合小说| 中文一区在线| 欧美日韩尤物久久| 国产精品毛片久久| 国产极品久久久久久久久波多结野 | 久久国产欧美日韩精品| 国产精品毛片在线| 亚洲高清二区| 日韩免费在线| 高清在线一区| 精品网站999| 国产黄色精品| 国产精品久久久久久久免费软件| 国产亚洲永久域名| 99pao成人国产永久免费视频| 精品成人免费一区二区在线播放| 精品国产a一区二区三区v免费| 青青在线精品| 奇米777国产一区国产二区| 日韩中出av| 香蕉久久久久久| 丝袜亚洲另类欧美| 好看的亚洲午夜视频在线| 亚洲视频综合| 中文欧美日韩| 在线观看亚洲精品福利片| 亚洲一区二区三区中文字幕在线观看| 99国产精品久久久久久久| 激情欧美一区| 在线视频日韩| 麻豆91精品| 亚洲精品高潮| 日韩高清一区在线| 97精品国产99久久久久久免费| 日本视频一区二区| 国产日韩一区| 久久这里只有精品一区二区| 精品久久福利| 美女av在线免费看| 国内精品99| 爽好久久久欧美精品| 亚洲九九精品| 欧美在线黄色| 91国内精品| 麻豆成人综合网| 国产粉嫩在线观看| 久久中文视频| 日韩专区在线视频| 91精品啪在线观看国产爱臀| 久久中文欧美| 久久蜜桃精品| 鲁大师影院一区二区三区| 日韩国产在线不卡视频| 麻豆精品视频在线观看免费| 中文在线免费视频| aa亚洲婷婷| 日本a口亚洲| 日产精品一区二区| 久久国产日本精品| 久久亚洲色图| 欧美日韩99| 精品国产亚洲一区二区三区大结局 | 久久中文亚洲字幕| 免费视频最近日韩| 国产欧美日韩在线一区二区| 丰满少妇一区| 欧美福利专区| 日本欧美韩国一区三区| 国产一区二区三区视频在线| 欧美日韩中文一区二区| 午夜一级久久| 国产精品扒开腿做爽爽爽软件| 免费污视频在线一区| 在线精品观看| 国产成人久久精品麻豆二区 | 日韩中文字幕av电影| 欧美一区影院| 久久国产直播| 日韩在线麻豆| 国产a亚洲精品| 在线亚洲观看| 国产激情一区| 国产模特精品视频久久久久| 国产精品久久免费视频| 99精品电影| 欧美亚洲tv| 激情综合网址| 国产视频一区二区在线播放| 久久久一二三| 欧美天堂一区| 91精品99| 精品五月天堂| 综合亚洲自拍| 欧美日韩视频免费观看| 日韩精品久久理论片| 一本大道色婷婷在线| 亚洲日本欧美| www.com.cn成人| 日本天堂一区| 午夜国产一区二区| 麻豆一区二区99久久久久| 宅男噜噜噜66国产日韩在线观看| 免费在线欧美黄色| 丝袜美腿亚洲色图| 久久久久.com| 精品亚洲精品| 7777精品| 蜜臀精品一区二区三区在线观看| 日韩免费久久|