【问题标题】:Apache Shiro authentication customizationApache Shiro 身份验证自定义
【发布时间】:2016-10-29 09:35:18
【问题描述】:

如何在 Apache Shiro 中自定义身份验证逻辑?在 Spring Security 中,我在 AuthenticationManager 的“authenticate()”方法中编写了我的自定义逻辑:

public Authentication authenticate(Authentication auth) { ... }

有没有办法在 Apache Shiro 中做同样的事情?

【问题讨论】:

    标签: java security jakarta-ee spring-security shiro


    【解决方案1】:

    这里是 Shiro 的 authentication sequencecustomizable realm authentication 的概述。

    根据您想要做什么,您自己实现的 CredentialsMatcher 可能是您正在寻找的钩子?关于您需要自定义哪些部分的详细答案实际上取决于您的实际身份验证场景。

    【讨论】:

    • 感谢您的回复!我有一个 Web 应用程序,登录 url:/ls?action=login 我读过我必须在 SecurityUtils.getSubject() 对象上调用 login() 方法。我不明白如何将用户名和密码传递给 login() 方法。我应该在 Servlet 中调用这个 login() 方法,然后重定向到一个安全的位置吗?
    • 如果您只想使用用户名/密码调用login() 方法,只需构造一个new UsernamePasswordToken(username, password) 并将其作为参数传递给login(),如here 所述
    • 这就是我不知道该怎么做。如何覆盖 .login() 方法?实际上我想在 .login() 方法中实现我自己的逻辑。我读到了领域——但我不确定选择哪个领域。
    • 您是否查看过ActiveDirectoryRealmCasRealmJdbcRealmJndiLdapRealmPropertiesRealmSimpleAccountRealmTextConfigurationRealm你想做什么?
    • 感谢@greenSocksRock。是的,领域完成了这项工作:)
    猜你喜欢
    • 2017-06-28
    • 2014-12-20
    • 2016-04-02
    • 2014-12-06
    • 2014-08-31
    • 2015-05-17
    • 2020-04-01
    • 2022-12-10
    • 2013-01-30
    相关资源
    最近更新 更多