我正在开发一个Spring启动应用程序,并且已经收到一个要求,即某个端点必须只能由授权用户访问,用户必须在服务该应用程序的系统中实际存在。可选的情况是,如果用户具有对服务器的SSH访问权限,则用户也可以访问端点。这让我觉得可以使用某种键(文件或程序)来解锁端点。不是一个精通安全性的人,这让我对如何使用Spring Boot实现这样的功能感到茫然。任何帮助表示赞赏。
答案 0 :(得分:2)
Spring引导没有内置支持这种情况,但实际需要的是 PAM (Linux Pluggable Authentication Modules)端口的java(JPam可以是一个很好的解决方案)。
你可以为spring安全性编写自己的AuthenticationProvider,它会在它的验证方法中做这样的事情:
Pam pam = new Pam();
boolean authenticated = pam.authenticateSuccessful(username, password));
此库已记录良好(pdf)
可以找到另一个用于java解决方案的PAM here libpam4j