我个人理解的是springboot内置的一些安全措施太弱了,因此要用很多第三方的框架保证安全
需要的环境清单 |
---|
java |
keycloak |
mysql |
java -version
解压到自己的目录,建议 /usr/local/keycloak
tar -zxvf keycloak-3.4.0.Final.tar.gz
cd keycloak
由于需要自己导入java-connector.jar,可以提前下好,创建目录
mkdir -p modules/system/layers/base/com/mysql/main/
cd modules/system/layers/base/com/mysql/main/
ls
vim module.xml
<module xmlns="urn:jboss:module:1.3" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-8.0.24.jar"/>
resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
dependencies>
module>
回到keycloak的根目录
vim standalone/configuration/standalone.xml
主要的参数设置如下,修改为0.0.0.0可以让外机访问
mysql的账号密码,keycloak数据库的ip在这里填写,因此数据库地址可以是远程的,我个人的是本机的因此只需要修改账户密码
这些端口号可以自定义,默认也行,但是要避免和电脑内其他环境冲突
回到keycloak的根目录,我按照网上初始化账户出现了问题,因此我建议这么运行
./bin/add-user.sh
然后按照指引填入(可能不是这个顺序) 账户:admin 密码:admin 确认密码:admin 组:master
弄完了就可以启动了
我选择后台启动
nohup ./bin/standalone.sh $
即可启动成功
在keycloak根目录运行以下指令可以实时看是否报错
tail -f nohup.out
curl -XGET http://localhost:9080/auth/
我们之前配置过0.0.0.0,因此可以通过自己的电脑来访问
出来这个就算是快成功了,这时候点击Administration Console可以登录
1、点击Administration Console出现 We‘re sorry
这是因为keycloak默认是https的,因此需要修改mysql中keycloak部分数据的配置
use keycloak;
update REALM set ssl_required = 'NONE' where id = 'master';
然后重启keycloak,重启方式如下:
ps -ef | grep keycloak
kill -9 pid(前面keycloak的pid)
//进入keycloak根目录运行如下指令后台启动
nohup ./bin/standalone.sh $
2、自己的电脑无法访问页面
解决思路:
1、先 ping以下服务器ip看是否ping通
2、远程服务器是否开放相关端口|是否开启了防火墙
3、看keycloak的相关日志,可能是配置的mysql写错了,也可能是本身在配置文件里面的ip写错了不是0.0.0.0,导致除了服务器本机其他ip不能访问。log日志里面有运行的日志,mysql相关配置错误,会在日志里面报java exception