Java与系统用户认证

Java与系统用户认证,java,security,authentication,Java,Security,Authentication,我正在编写一个服务器应用程序,主要允许人们通过RMI向DRM系统(例如TORQUE)提交作业。应用程序需要以root用户身份运行,以便可以提交代理作业(其中作业是以提交它的用户以外的用户身份运行的),但是这显然是不安全的-用户名只是RMI中的一个字符串参数。任何人都可以传入任何用户名,并以该用户的身份运行作业 让Java针对系统的授权用户对该用户名进行身份验证的最佳方法是什么(借助于也会传入的密码)?我已经看过JAAS和ApacheShiro,但它们似乎都是关于创建您自己的身份验证方法的。我想使

我正在编写一个服务器应用程序,主要允许人们通过RMI向DRM系统(例如TORQUE)提交作业。应用程序需要以root用户身份运行,以便可以提交代理作业(其中作业是以提交它的用户以外的用户身份运行的),但是这显然是不安全的-用户名只是RMI中的一个字符串参数。任何人都可以传入任何用户名,并以该用户的身份运行作业

让Java针对系统的授权用户对该用户名进行身份验证的最佳方法是什么(借助于也会传入的密码)?我已经看过JAAS和ApacheShiro,但它们似乎都是关于创建您自己的身份验证方法的。我想使用系统现有的身份验证方法(类似Unix的系统),不管它们是什么。基本上,如果用户可以通过SSH登录,就可以了。

如果您的后端使用LDAP(如果您必须管理相对大量的用户,而本地
/etc/passwd
可能会很繁琐,则可以使用JAAS和现有的
LdapLoginModule


如果您想在没有此功能的情况下对本地系统(假设为Linux服务器)进行身份验证,它可能会有所帮助,尽管我从未尝试过。

我根据您对PAM的建议进行了一些阅读,并遇到了JPAM(),我想我将使用它。