我有一个Web应用程序,该应用程序具有一个包含用户和密码的MySQL数据库。我有一个执行工作的Jenkins设置。
当我探索如何让Jenkins使用数据库中的用户名和密码时,看起来我可以使用自定义身份验证方法来验证用户并允许我登录。示例:https://serverfault.com/questions/839008/jenkins-auth-plugin-where-to-store-the-script-and-how-to-pass-parameters
当我尝试从groovy脚本中搜索如何与数据库通信时,找不到帮助文档或样本。我是Jenkins和groovy的新手。我不确定我是否需要编写一个Groovy脚本来验证用户身份,或者是否需要创建一个新的安全领域并编写一个新的Java插件来按照此处引用的示例进行验证:https://github.com/mig82/jenkins-security-example >
请为我提供最佳实践,以及指向文档或示例代码的链接。
编辑 我已经在jenkins中尝试了下面的groovy脚本,但是在身份验证流程中仍然失败。
def env = System.getenv()
def username = env['U']
def password = env['P']
println "Authenticating user $username"
if (authenticate(username, password)) {
System.exit 0
} else {
System.exit 1
}
def authenticate(def username, def password) {
def userIsAuthenticated = true
// Authentication logic goes here
return userIsAuthenticated
}
我在日志文件中没有收到任何错误,并且用户也没有登录到系统。
答案 0 :(得分:0)
该插件已过时,无法正常工作。因此,我为Jenkins构建了自己的插件,以便更好地处理身份验证。
详细的实施步骤:https://dsaravanan.wordpress.com/2019/12/25/creating-a-new-security-realm-plugin-for-jenkins/
源代码:https://github.com/d-saravanan/jenkins-security-realm-plugin