3-8节课中shiro相关问题
来源:3-10 基于Apache Shiro权限管理Case实操-2

吐槽者
2018-06-12
老师我想问一下这个章节中第一次简单搭建完成运行登录一直登录不进去,密码正常也进不去,打印了一下登录方法里面catch异常和正常情况下都有进入,是什么原因?
5回答
-
吐槽者
提问者
2018-06-13
老师,我觉得你这边要添加一些关于md5加密的东西才可以,不过我不知道怎么整合进去
052018-06-13 -
Jimin
2018-06-13
这个错之前很多同学遇到过,但出问题的点都不太一样,我罗列一下你分别检查一下看看。
1、保证代码数据库连接正确。课程里application.properties里的数据库配置要保证换成了自己可以连接的。
2、用户名密码是否正确。课程默认sql里给的可登陆账户为:用户名admin,密码123
3、如果用户名密码没问题,需要确认一下CredentialMatcher里是否也是使用明文做的等值检查,这是如果修改也可能出现问题。
public class CredentialMatcher extends SimpleCredentialsMatcher {
@Override
public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;
String password = new String(usernamePasswordToken.getPassword());
String dbPassword = (String) info.getCredentials();
return this.equals(password, dbPassword);
}
}
4、如果上面两点也都没有问题,那么检查一下你的mybatis里的sql是否拼写错误,之前有同学犯过类似的错误。感觉自己和课程里的一样,实际上有差别,我这里也贴一份出来,必要的时候你可以覆盖一下:
<mapper namespace="com.mmall.demo2.mapper.UserMapper">
<resultMap id="userMap" type="com.mmall.demo2.model.User">
<id property="uid" column="uid" />
<result property="username" column="username" />
<result property="password" column="password" />
<collection property="roles" ofType="com.mmall.demo2.model.Role">
<id property="rid" column="rid" />
<result property="rname" column="rname" />
<collection property="permissions" ofType="com.mmall.demo2.model.Permission">
<id property="pid" column="pid" />
<result property="name" column="name"/>
<result property="url" column="url" />
</collection>
</collection>
</resultMap>
<select id="findByUsername" parameterType="string" resultMap="userMap">
SELECT u.*, r.*, p.*
FROM user u
INNER JOIN user_role ur on ur.uid = u.uid
INNER JOIN role r on r.rid = ur.rid
INNER JOIN permission_role pr on pr.rid = r.rid
INNER JOIN permission p on pr.pid = p.pid
WHERE u.username = #{username}
</select>
</mapper>
5、配置细节不对,比如mybatis配置扫描路径mappers写成mapper的
理论上你贴的异常跟进去还会看到更详细的问题点,你先按照这几个方向对照检查一下看看。022018-06-13 -
吐槽者
提问者
2018-06-13
老师,异常报这个错,怎么改
Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - 11, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).
00 -
吐槽者
提问者
2018-06-12
好的,谢谢老师
00 -
Jimin
2018-06-12
你好,走到catch的异常里时,拿一下异常的具体说明,走到这里代码认证失败,那里会给出错误的原因,之后代码就会走到登录页,代表登录失败
00
相似问题
回答 2
回答 1
回答 1
回答 2
回答 1