我目前正在构建一个Web应用程序,我已经开始集成apache shiro来执行基本身份验证。我开发了一个自定义的JdbcRealm。它看起来很好。
我的[Shiro.ini]文件
[main]
jdbcRealm = com.sigmastream.yh.api.http.YhJdbcRealm
jdbcRealm.permissionsLookupEnabled = true
securityManager.realms = $jdbcRealm
[urls]
/yhrest/login/** = authcBasic
public class YhJdbcRealm extends JdbcRealm
{
public YhJdbcRealm()
{
this.dataSource = getDataSource();
this.authenticationQuery = "SELECT password from users WHERE username = ?";
}
public BasicDataSource getDataSource()
{
String dbPath = AppProperties.getInstance().getConfig().getProperty("iot.web.admin.source.dbpath",
"");
String poolSize = AppProperties.getInstance().getConfig().getProperty("iot.db.connection.pool.size", "25");
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:sqlite:" + dbPath);
dataSource.setDriverClassName("org.sqlite.JDBC");
dataSource.setInitialSize(Integer.valueOf(poolSize));
dataSource.setMaxActive(1);
return dataSource;
}
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException
{
AuthenticationInfo info = super.doGetAuthenticationInfo(token);
return info;
}
}
我使用SQLite作为数据库。我希望apache shiro能够验证我的应用程序中的每个请求,除了登录页面。
我不知道在我的应用程序中配置apache shiro时出错了。如果任何人可以提供一些指导或帮助,那将是适合的。