apache shiro与java EE应用程序的集成

时间:2017-01-19 10:24:03

标签: java apache authentication shiro

我目前正在构建一个Web应用程序,我已经开始集成apache shiro来执行基本身份验证。我开发了一个自定义的JdbcRealm。它看起来很好。

我的[Shiro.ini]文件

[main]
jdbcRealm = com.sigmastream.yh.api.http.YhJdbcRealm
jdbcRealm.permissionsLookupEnabled = true
securityManager.realms = $jdbcRealm

[urls]
/yhrest/login/** = authcBasic

自定义Jdbc领域

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时出错了。如果任何人可以提供一些指导或帮助,那将是适合的。

0 个答案:

没有答案