<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-auth-htpasswd</artifactId>
<version>5.0.1</version>
</dependency>
认证与授权
.htpasswd 认证提供者
我们提供了一个 AuthenticationProvider
的实现,它使用 Apache htpasswd 文件格式进行认证。提供者在加载文件后不会监视文件的更新。如果您需要动态用户管理,使用动态提供者(例如 jdbc 或 mongo 提供者)会更方便。
要使用此项目,请将以下依赖项添加到您的构建描述符的依赖项部分
-
Maven(在您的
pom.xml
中)
-
Gradle(在您的
build.gradle
文件中)
compile 'io.vertx:vertx-auth-htpasswd:5.0.1'
要创建一个实例,您首先需要一个 htpasswd 文件。此文件是使用 apache htpasswd 工具创建的。
一旦您有了其中一个文件,您就可以按如下方式创建一个 HtpasswdAuth
实例
HtpasswdAuth authProvider = HtpasswdAuth
.create(vertx, new HtpasswdAuthOptions());
一旦您有了您的实例,您就可以像使用任何 AuthenticationProvider
一样进行认证。
开箱即用的配置假定项目根目录下使用 htpasswd 文件。
提供者的内部行为
提供者将在启动时加载指定的 htpasswd 文件,并且不会监视修改。如果您需要动态重新加载,则需要重新启动提供者。
除了 htpasswd 文件本身,此实现不具有任何其他状态。
认证
当使用此实现进行认证时,它假定用户名和密码被解析为一个 JSON 对象,我们从现在起将其称为认证信息。
Credentials authInfo = new UsernamePasswordCredentials(
"someUser", "somePassword");
authProvider.authenticate(authInfo)
.onSuccess(user -> {
// OK
})
.onFailure(err -> {
// Failed!
});
授权
Apache htpasswd 文件是一种纯粹的认证机制,而非授权。这意味着权限检查将始终为 false
。