NutzCN Logo
问答 关于nutzbook集成shiro的问题
发布于 3032天前 作者 Lewe© 1751 次浏览 复制 上一个帖子 下一个帖子
标签:
[main]
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
nutzdao_realm = org.nutz.ctemplate.support.shiro.NutDaoRealm
nutzdao_realm.credentialsMatcher = $sha256Matcher

securityManager.realms = $nutzdao_realm
authc = org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter
logout.redirectUrl= /

[urls]
/static/**        = anon
/index            = anon
/                 = anon
/logout           = logout
;/user/error  = anon
;/user/profile/active/mail = anon
/login/**         = anon
/register/**      = anon
/**               = authc

使用PassThruAuthenticationFilter
登陆方法

UsernamePasswordToken token = new UsernamePasswordToken(username, password);
        // 获取当前的Subject
        Subject currentUser = SecurityUtils.getSubject();

        try {
            currentUser.login(token);

为什么登陆的时候短点不走NutDaoRealm中的

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException

方法呢?

10 回复

token类型匹配吗

来自炫酷的 NutzCN

NutDaoRealm里面进行强转了 用的相同的token

UsernamePasswordToken upToken = (UsernamePasswordToken)token;

@wendal 不走这一步啊 主要

@ysysdzz 不是强转与否,是看构造方法里面登记的token类型

来自炫酷的 NutzCN

@wendal doGetAuthenticationInfo(AuthenticationToken token) 这里吗

UsernamePasswordToken 是AuthenticationToken的子类啊

NutDaoRealm的构造方法,或者你贴出来吧

来自炫酷的 NutzCN

@wendal

public NutDaoRealm(CacheManager cacheManager, CredentialsMatcher matcher) {
        super(cacheManager, matcher);
        setAuthenticationTokenClass(UsernamePasswordToken.class);//原来是这的问题。哈哈,本来是CaptchaUsernamePasswordToken
    }

@wendal 不过,这是什么意思啊,没搞懂

@ysysdzz 一般情况下 realm与token类一一对应

来自炫酷的 NutzCN

shiro执行login的时候,会拿着token对象问每一个realm实现:认识这种token不?不认识就跳过了。

来自炫酷的 NutzCN

添加回复
请先登陆
回到顶部