Skip to content

Instantly share code, notes, and snippets.

@qijianchuan
Last active June 15, 2019 15:55
Show Gist options
  • Save qijianchuan/9f6238c7e15c3062200b63721e5549b8 to your computer and use it in GitHub Desktop.
Save qijianchuan/9f6238c7e15c3062200b63721e5549b8 to your computer and use it in GitHub Desktop.
错误解决办法
maven创建的项目
找不到相关的shiro配置文件;需要在main文件夹下创建resources文件夹;将配置文件资源等放到该文件夹下
**Assert.assertEquals作用**
assertEquals
函数原型1:
```language
assertEquals([String message],expected,actual)
```
参数说明:
message是个可选的消息,假如提供,将会在发生错误时报告这个消息。
expected是期望值,通常都是用户指定的内容。
actual是被测试的代码返回的实际值。
**Realm**
Realm:域,Shiro 从从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 要验证用户身份,那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;也需要从 Realm 得到用户相应的角色 / 权限进行验证用户是否能进行操作;可以把 Realm 看成 DataSource,即安全数据源。如我们之前的 ini 配置方式将使用 org.apache.shiro.realm.text.IniRealm。
org.apache.shiro.realm.Realm 接口如下:
```language
String getName(); //返回一个唯一的Realm名字
boolean supports(AuthenticationToken token); //判断此Realm是否支持此Token
AuthenticationInfo getAuthenticationInfo(AuthenticationToken token)
throws AuthenticationException; //根据Token获取认证信息
```
**单 Realm 配置**
```
public class MyRealm1 implements Realm {
@Override
public String getName() {
return "myrealm1";
}
@Override
public boolean supports(AuthenticationToken token) {
//仅支持UsernamePasswordToken类型的Token
return token instanceof UsernamePasswordToken;
}
@Override
public AuthenticationInfo getAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String username = (String)token.getPrincipal(); //得到用户名
String password = new String((char[])token.getCredentials()); //得到密码
if(!"zhang".equals(username)) {
throw new UnknownAccountException(); //如果用户名错误
}
if(!"123".equals(password)) {
throw new IncorrectCredentialsException(); //如果密码错误
}
//如果身份认证验证成功,返回一个AuthenticationInfo实现;
return new SimpleAuthenticationInfo(username, password, getName());
}
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment