问题1.java.sql.SQLException: Access denied for user 'root'@'192.168.2.21' (using password)
此问题是为root用户未授权给192.168.21,一开始换成127.0.0.1就可以。后面运行一段时间之后又不行了。
猜测是未授权。因此进行授权。
步骤如下:
1.登录 mysql -hlocalhost -uroot -ptimevale123
2.mysql添加数据库访问权限:
GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'timevale123';
grant all privileges on file_system.* to 'root'@'192.168.2.21' identified by 'timevale123' with grant option;
注:数据库名字=DB,用户名=root,权限来源=192.168.2.1,密码=123456
3.更新权限
flush privileges;
4.查看权限
show grants for root@'192.168.2.21';
问题2.jar方式启动springboot项目。
一开始以java -jar方式启动,控制台ctrl+c之后就结束了。导致一直没有启动应用。折腾了很久。后来才发现这个问题。
后来百度出来,java -jar xxx.jar & 方式后台启动。或者 nohup java -jar xxx.jar >log.txt &
问题3.shro.xml方式配置多个角色,满足其中一个就放行。
```
public class AnyRolesFilter extends AuthorizationFilter {
@Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {
Subject subject = this.getSubject(request, response);
String[] rolesArray = (String[]) ((String[]) mappedValue);
if (rolesArray != null && rolesArray.length != 0) {
for (String role : rolesArray) {
if (subject.hasRole(role)) {
return true;
}
}
} else {
return true;
}
return false;
}
}
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- Shiro的核心安全接口,这个属性是必须的 -->
<property name="securityManager" ref="securityManager" />
<property name="unauthorizedUrl" value="/unauth.json"/>
<property name="filters">
<map> <entry key="perm" value-ref="projectTokenAuthenticatingFilter" />
<entry key="roles"> <bean class="cn.tsign.www.esignpro.shiro.filter.CustomRolesAuthorizationFilter"/</entry>
</map>
</property>
</bean>
```