gpt4 book ai didi

security - 使用类似密码的单个 htpasswd 保护开发 Grails 应用程序

转载 作者:行者123 更新时间:2023-12-04 17:40:51 30 4
gpt4 key购买 nike

我正在向公共(public)领域的一些同事展示一个 grails 应用程序。到目前为止,我在开发模式下工作,还没有通过 war 进行部署。

我需要保护应用程序,以防止任何人检查它/玩它。我已经有一个用户 mgmt,但在 sb 看到任何我想要的 .htpasswd 式保护之前。如果可能,我不想使用插件(例如 shiro)扩大应用程序本身。

有什么想法/建议吗?

非常感谢!

最佳答案

您可以使用 HTTP 身份验证。 HTTP 身份验证实现起来非常简单,但它不是很安全或不可用。您最好使用 shiro 或 spring-security 来获得真正的解决方案。也就是说,一个简单的过滤器可以检查 HTTP 授权 header ,如果不存在则返回 401 状态代码。这将迫使浏览器弹出一个用户名/密码框,并重新提交带有在标题中编码的用户名和密码的表单。

Grails 过滤器的类名必须以“Filters”结尾,并位于 grails-app/conf 目录中。这是一个例子:

class SimpleAuthFilters {
def USERNAME = "foo"
def PASSWORD = "bar"

static filters = {
httpAuth(uri:"/**") {
before = {
def authHeader = request.getHeader('Authorization')
if (authHeader) {
def usernamePassword = new String(authHeader.split(' ')[1].decodeBase64())
if (usernamePassword == "$USERNAME:$PASSWORD") {
return true
}
}
response.setHeader('WWW-Authenticate', 'basic realm="myRealm"')
response.sendError(response.SC_UNAUTHORIZED)
return false
}
}
}
}

关于security - 使用类似密码的单个 htpasswd 保护开发 Grails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4268306/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com