其他分享
首页 > 其他分享> > 测试

测试

作者:互联网

          此博客绝赞施工中......
          to be continued......

    “封印...竟然解开了!”

    海风袭来了缠绵,却吹不落老人眼里的惊恐。

    “老人家,什么封印?”游客见老人面色古怪,不禁好奇的问道。

    “我的上帝!是她!是她!她又出来了!又出来了!”老人目光呆滞的看向大海的另一端,嘴里喃喃念道。

    老人的举动,更加引来游客的好奇,又追问道:“她?她又是谁?老人家,您再说什么?”

    老人呆呆的望了游客一眼,忽然,老人凶光大闪,干枯的双手狠狠抓向游客的手腕,老人拿捏之准,出招之快,游客没有丝毫反应,命门便被老人死死扣住。

    游客心中一惊:“这老头竟然会使武当擒拿手!”

    老人厉声道:“都怪你!都怪你!你知不知道,你犯下了滔天大罪!滔天大罪啊!”

    游客道:“什么滔天大罪,不就是打坏一个玻璃杯么?有什么打紧的,我赔你一个便是了。你一直抓着我的手干嘛,我有男朋友的!”

    老人甩开了游客的手腕,道:“哼!一个玻璃杯!你知道这个玻璃杯里面装的是什么吗!你赔得起吗!”

    游客道:“是什么?”

    老人道:“里面是…”老人说到一半便止住了。

    游客道:“到底是什么?”

    老人眼神空洞,仿佛这瞬间又苍老了几十岁,缓缓道:“罢了罢了,不关你的事,是我糊涂。你快走!赶紧走!走得越远越好!”

    游客见老人面色凄苦,心中也是不忍,柔声道:“老人家,到底发生什么事情了?您告诉我,我毕业于新东方武术学院甜品系,并且专注小面二十年,做过的糍粑能绕地球两圈,从小老师便教导我们要讲文明,懂礼貌,助人为快乐之本,况且老人家您武功那么高强,您有什么难题可以告诉我,说不定我们可以一起解决。”

    老人听了游客的一番话,僵硬的面容挤出一丝笑容,道:“小伙子,谢谢你。但这件事情不是你我二人可以解决的,你还是赶紧走吧,再不走就来不及了。”

    游客听了老人此言,也不强人所难,道:“也罢,那老人家,我就先走了,我看您面色不好,我在国内有一位朋友,他精通医道,毕业于蓝翔技校音乐专科,是我国著名的反法西斯音乐家,如果您感觉打野有什么难处,我可以介绍给您认识。”

    老人一听到“蓝翔技校”四个字,眼神散发出一道强烈的希望之光,再一次抓住游客的手,急道:“小伙子,你说的那人,是不是擅长正手反打,反手全垒打,原地踏步走落地无水花,号称冰天雪地三百六十度不穿内裤叼根烟旋转无死角的詹姆斯铁柱?”

    游客正色道:“正是!”

    “如果是他,那么有救了,有救了!我们村儿有救了!”老人老泪纵横,喜极而泣,又道:“敢问小兄弟,你能不能立刻将那位高人请来,什么条件我都尽力满足,我代表波罗的海狗蛋村全体村民,谢谢您的救命之恩。”老人说着,便朝游客跪下。

    “老人家快快请起!我这便用BB机传呼他。”

    过了片刻, 游客笑道:“老人家莫要担心,我朋友已经收到传呼,现在正在订机票,坐拖拉机过来,两天就到了。”

    老人这才放下心来,双手不停的做着祷告:“感谢CCT…不对,是感谢上帝。”

    老人祷告还未做完,原本风光明媚的海滩忽然变得阴沉起来,温柔的海风也变得狰狞,苍穹之上,一朵巨大的乌云伴随着雷鸣之声笼罩而来,一副“黑云压城城欲摧”的可怕光景。

    老人脸色剧变,喝道:“她来了!她来了!你还愣着干什么,快走啊!你快走!想不到她来得如此之快!”

    “想走?哼哼,已经来不及了!”一个女人的声音随海风而来,这声音仿佛能穿透一切,压着巨浪之声,回荡在天地之间,散发着令人恐惧的威压。

    这一刻,老人惊呆了,游客吓尿了,游客一屁股坐倒在地,颤声道:“这…这是什么东西。”

    老人此刻面色平静,心如止水,冷冷道:“便是你打坏了玻璃杯中释放出来的恶灵。”

    游客吼道:“你TM在逗我吗?一个玻璃杯里面还封印恶灵?玄幻小说看多了吧!”

    老人道:“这不是玄幻,是真人真事,是地地道道的本土人,自己讲自己的故事。”

    “尼玛这是我们重庆卫视《雾都夜话》的开场白,这TM也抄袭,有没有公德心啊吗喂。”游客彻底暴走了!

    老人道:“现在还有心情说笑,如果你那位朋友来,兴许还可以抵挡,但眼下只有我和你,九死一生!适才我叫离开,你不愿意,现在想走也走不了。没关系,黄泉路上正好可以做伴。”

    游客站起身来,定了定神,面色也不似先前恐慌,沉声道:“既然如此,那便战吧!除魔卫道,也是我新东方的宗旨。”游客对着天空中那团黑云,大喝一声:“来吧,德玛西亚,人在塔……”

    游客还未说完,一股巨浪袭来,结结实实的拍在游客身上,游客咒声大骂:“我靠,你是娜迦请来的逗比么!”

    此时天边乌云涌动,汇聚成一道女人摸样的人形,随即传来一道冰冷的声音:“结束了。”

    铺天盖地的海啸,夹杂着风雨雷电席卷而来,在这令人绝望的力量面前,任何人力都显得徒劳。游客和老人放弃了抵抗。

    在这千钧一发之际,天空之上,一道金光闪动,在这金光的笼罩之下,整个空间,甚至时间都凝固了。

    此时,天空之上传来一道人声,人声每说一个字,天空便凝聚出一个金色的字体。

    “蓝!翔!技!校!皆!阵!列!在!前!”

    人声轻轻一吐:“挖掘技!”

    随即九个金色大字,幻化成九条金龙。

    “土次方绞杀!”

    顿时,九条金龙一声龙吟,如果方才恶灵的力量是仅仅让人绝望,那么此时这九条金龙带来的却是毁灭!

    “恶灵,来感受搬砖工的怒火吧!”

    “不!!!不!!!”恶灵一声愤怒与不甘的怪啸,在九条金龙的冲击之下,恶灵如同纸糊一般顷刻瓦解。

    金龙消散,天光云开。

    海滩又恢复了温柔明媚。

    只剩下老人写下那块“玻璃碎片,危险!”在风中轻轻摇摆以及苍穹之上还还未消散的四个大字。

    蓝翔技校。

AuthorizationServerConfiguration.java

@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
    @Autowired
    private AuthenticationManager authenticationManager;
    @Autowired
    private JwtAccessTokenConverter jwtAccessTokenConverter;
    @Autowired
    private ClientDetailsService jdbcClientDetailsService;
    @Autowired
    private AuthorizationCodeServices authorizationCodeServices;
    @Autowired
    private ApprovalStore approvalStore;
    @Autowired
    private TokenStore tokenStore;
    @Autowired
    private OauthTokenEnhancer oauthTokenEnhancer;
    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
        endpoints.authenticationManager(authenticationManager);
        endpoints.accessTokenConverter(jwtAccessTokenConverter);
        endpoints.authorizationCodeServices(authorizationCodeServices);
        endpoints.approvalStore(approvalStore);
        endpoints.tokenStore(tokenStore);
        TokenEnhancerChain enhancerChain = new TokenEnhancerChain();
        List<TokenEnhancer> delegates = new ArrayList<>();
        delegates.add(oauthTokenEnhancer);
        delegates.add(jwtAccessTokenConverter);
        enhancerChain.setTokenEnhancers(delegates);
        endpoints.tokenEnhancer(enhancerChain);
    }
    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.withClientDetails(jdbcClientDetailsService);
    }
    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) {
        security.allowFormAuthenticationForClients()
                .tokenKeyAccess("permitAll()")
                .checkTokenAccess("permitAll()");
    }
}

JwtTokenConfiguration.java

@Configuration
public class JwtTokenConfiguration {
    @Bean
    public JwtAccessTokenConverter jwtAccessTokenConverter() {
        return new JwtAccessTokenConverter();
    }
}

WebSecurityConfiguration.java

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Autowired
    private DataSource dataSource;
    @Autowired
    private UserAuthService userAuthService;
    @Bean
    public BCryptPasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
    @Bean
    public AuthorizationCodeServices authorizationCodeServices() {
        return new JdbcAuthorizationCodeServices(dataSource);
    }
    @Bean
    public ApprovalStore approvalStore() {
        return new JdbcApprovalStore(dataSource);
    }
    @Bean
    public TokenStore tokenStore() {
        return new JdbcTokenStore(dataSource);
    }
    @Bean
    public OauthTokenEnhancer oauthTokenEnhancer() {
        return new OauthTokenEnhancer();
    }
    @Bean
    public ClientDetailsService jdbcClientDetailsService() {
        return new JdbcClientDetailsService(dataSource);
    }
    @Bean
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }
    @Override
    protected void configure(AuthenticationManagerBuilder auth) {
        DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
        authProvider.setPasswordEncoder(passwordEncoder());
        authProvider.setUserDetailsService(userAuthService);
        auth.authenticationProvider(authProvider);
    }
}

OauthController.java

@RestController
@RequestMapping("/oauth")
public class OauthController {
    @Autowired
    private TokenEndpoint tokenEndpoint;
    @GetMapping("/token")
    public Oauth getAccessToken(Principal principal, @RequestParam Map<String, String> parameters) throws HttpRequestMethodNotSupportedException {
        return tokenInfo(tokenEndpoint.getAccessToken(principal, parameters).getBody());
    }
    @PostMapping("/token")
    public Oauth postAccessToken(Principal principal, @RequestParam Map<String, String> parameters) throws HttpRequestMethodNotSupportedException {
        return tokenInfo(tokenEndpoint.postAccessToken(principal, parameters).getBody());
    }
    private Oauth tokenInfo(OAuth2AccessToken accessToken) {
        DefaultOAuth2AccessToken token = (DefaultOAuth2AccessToken) accessToken;
        token.getAdditionalInformation().remove("jti");
        LinkedHashMap<String, Object> data = new LinkedHashMap<>(token.getAdditionalInformation());
        data.put("accessToken", token.getValue());
        return Oauth.build(data);
    }
}

UserAuthMapper.java

public interface UserAuthMapper extends BaseMapper<UserAuth> {
}

Oauth.java

@Data
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Oauth {
    private int code;
    private String message;
    private Object data;
    public static Oauth build(Object data) {
        return new Oauth(200, "成功", data);
    }
}

UserAuth.java

@Data
@TableName("user_auths")
public class UserAuth {
    private String userId;
    private String identityType;
    private String identifier;
    private String credential;
}

OauthTokenEnhancer.java

public class OauthTokenEnhancer implements TokenEnhancer {
    @Override
    public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
        User user = (User) authentication.getPrincipal();
        Map<String, Object> map = new LinkedHashMap<>();
        map.put("client_id", authentication.getOAuth2Request().getClientId());
        map.put("username", user.getUsername());
        ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(map);
        return accessToken;
    }
}

UserAuthService.java

@Service
public class UserAuthService implements UserDetailsService {
    @Autowired
    private UserAuthMapper userAuthMapper;
    @Override
    public UserDetails loadUserByUsername(String username) {
        QueryWrapper<UserAuth> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(UserAuth::getIdentifier, username);
        UserAuth userAuth = userAuthMapper.selectOne(queryWrapper);
        if (userAuth == null)
            throw new UsernameNotFoundException("账号不存在");
        List<GrantedAuthority> list = AuthorityUtils.commaSeparatedStringToAuthorityList("ROOT_USER");
        return new User(userAuth.getIdentifier(), userAuth.getCredential(), list);
    }
}

OauthDemoApplication.java

@SpringBootApplication
@MapperScan("com.scut.oauthdemo.mapper")
public class OauthDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(OauthDemoApplication.class, args);
    }
}

标签:return,游客,private,测试,new,老人,public
来源: https://www.cnblogs.com/Junkman/p/16609306.html