首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >死锁播放java第一次登录时更改密码

死锁播放java第一次登录时更改密码
EN

Stack Overflow用户
提问于 2016-08-09 18:36:33
回答 1查看 77关注 0票数 0

我有4组:管理员,服务,用户,访客,管理员是在数据库中创建的,第一次管理员登录需要更改密码,我想重定向到表单更改密码,我想重定向到表单更改密码,我在onAuthFailure中设置了重定向,但是服务,用户,访客在某些操作中没有验证和重定向更改密码表单,有一个好主意,请告诉我,我应该为每个角色重定向其他链接?,我只是在2天内阅读了关于死锁的文档,我不能理解更多,对不起我的英语。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 19:08:52

DeadboltHandler实现中,onAuthFailure方法可以使用getSubject来获取当前用户,并通过该use获取用户所拥有的角色。

代码语言:javascript
复制
public class MyDeadboltHandler implements DeadboltHandler {
    private final DeadboltExecutionContextProvider executionContextProvider;
    private final DeadboltAnalyzer analyzer;

    @Inject
    public MyDeadboltHandler(final ExecutionContextProvider ecProvider,
                             final DeadboltAnalyzer analyzer) {
        this.executionContextProvider = ecProvider.get();
        this.analyzer =analyzer;
    }

    public CompletionStage<Result> onAuthFailure(Http.Context context,
                                                 Optional<String> content) {
        final ExecutionContext executionContext = executionContextProvider.get();
        final ExecutionContextExecutor executor = HttpExecution.fromThread(executionContext);
        return getSubject(context).thenApplyAsync(maybeSubject ->
            maybeSubject.map(subject -> analyzer.hasRole(maybeSubject, "admin") ? /*go to admin section*/
                                                                                : /*go to non-admin section*/)
                        .orElseGet(() -> /*no user present*/),
                                   executor);
    }

    // other methods
}

在这个例子中有注释的地方,比如/*go to admin section*/,你需要用一个Result来替换它。

DeadboltAnalyzer中还有其他可用的方法,因此如果需要,您可以进行比analyzer.hasRole(maybeSubject, "admin")更复杂的检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38848416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档