我想使用 TOTP 软令牌将多因素身份验证添加到 Angular 和 Spring 应用程序,同时使所有内容尽可能接近Spring Boot Security Starter的默认值。
令牌验证发生在本地(使用 aerogear-otp-java 库),没有第三方 API 提供者。
为用户设置令牌有效,但通过利用 Spring Security Authentication Manager/Providers 验证它们无效。
API 有一个端点/auth/token,前端可以通过提供用户名和密码从中获取 JWT 令牌。响应还包括身份验证状态,可以是AUTHENTICATED或PRE_AUTHENTICATED_MFA_REQUIRED。
如果用户需要 MFA,则颁发令牌的单个授予权限PRE_AUTHENTICATED_MFA_REQUIRED为 5 分钟,到期时间为 5 分钟。这允许用户访问端点/auth/mfa-token,在那里他们可以从他们的 Authenticator 应用程序提供 TOTP 代码,并获得完全验证的令牌以访问站点。
我已经创建了我的自定义MfaAuthenticationProvider实现AuthenticationProvider:
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
// validate the OTP code
}
@Override …Run Code Online (Sandbox Code Playgroud) authentication spring-security spring-boot totp multi-factor-authentication
我编写了一个Java Web应用程序,我在构建时将URL替换为静态内容,以添加版本信息,主要用于缓存.
例如,href="myapp/css/default.min.css"变成了href="myapp-0.2.8/css/default.min.css"
我正在使用maven maven-replacer-plugin,对于一个文件,工作正常:
使用file-Tag进行单个文件替换.
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<ignoreMissingFile>false</ignoreMissingFile>
<file>${project.build.directory}/myApp/index.jsp</file>
<replacements>
<replacement>
<token>%PROJECT_VERSION%</token>
<value>${project.version}</value>
</replacement>
</replacements>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
Maven Debug Output在工作示例中显示了这一点.
[DEBUG] Configuring mojo 'com.google.code.maven-replacer-plugin:replacer:1.5.2:replace' with basic configurator -->
[DEBUG] (s) basedir = .
[DEBUG] (s) commentsEnabled = true
[DEBUG] (s) encoding = UTF-8
[DEBUG] (s) file = /Users/phisch/Development/MyApp/Workspace/MyApp-WebApp/target/myApp/index.jsp
[DEBUG] (s) ignoreErrors = false
[DEBUG] (s) ignoreMissingFile = false
[DEBUG] (s) preserveDir = true
[DEBUG] …Run Code Online (Sandbox Code Playgroud) 我想将 WebAuthN 添加为 Angular & Spring 应用程序的多因素身份验证选项。我使用 Yubico 的 WebAuthN java-webauthn-server库。
在没有硬件客户端的情况下,集成测试我的 WebAuthN 服务器的最佳方法是什么?是否有任何软件可以在自动化测试中处理密码学?我想在 CI/CD 管道 (GitLab) 中自动运行这些测试。
在最好的情况下,我希望能够测试整个过程,创建凭据以及登录。另一种情况可能是我在后端使用已知凭据并仅使用这些凭据登录。
我的 API 是基于 REST/JSON 的,具有依赖方、用户、挑战、公钥等......
我的集成测试是基于 Java 的(spring boot starter test)
我主要对如何在没有客户端的情况下集成测试服务器感兴趣。是否有可以处理身份验证器并返回正确数据/json 对象的实用程序或库?
我已经查看了通过 REST 工具测试 WebAuthn,但是,我对测试规范不感兴趣,因为我使用的是库,我只想确保我将库正确应用于我的代码。
java integration-testing spring-boot webauthn multi-factor-authentication
我正在计划一个Web应用程序,我目前正在评估框架.我以前在Ruby on Rails上做了很多工作,但是由于这个应用程序将依赖于已经用Java编写的许多代码并且将在Application Server基础结构上运行,因此它也将使用Java.
到目前为止,我看了几个框架,而Spring MVC(3.0)看起来最符合我的计划.我喜欢与Rails相比有多少概念相似:前端控制器,推送视图和宁静的URL.
但是,我仍然不确定视图部分.我希望能够拥有一个(或多个)具有我的网站基本结构的应用程序模板,包括徽标,页脚等.此模板将具有一些动态区域,例如导航部分等.(在Rails speek中,yield :导航)一些视图代码,特别是表单将被重用; 这就是为什么像偏爱的东西也会很好.
我的首页可能如下所示:
+-------------------------------+
| Application.tmlp |
| |
| +-------------------------+ |
| | index.tmpl | |
| | | |
| | +-------------------+ | |
| | | | | |
| | | login_partial.tmpl| | |
| | | | | |
| | +-------------------+ | |
| | | |
| +-------------------------+ |
| |
+-------------------------------+
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现了Velocity,Freemarker和Tiles,但我仍然不确定哪一个最适合我的需要.我喜欢模板概念,因为我想要一些设计师来创建模板.
一些既好但又不如模板概念那么重要的东西,就像rails中的link_to helper一样自动创建链接:
link_to "Profile", :controller => "profiles", :action => "show", :id => …Run Code Online (Sandbox Code Playgroud) 我正在玩Hadoop并在Ubuntu上设置了一个双节点集群.WordCount示例运行得很好.
现在我想编写自己的MapReduce程序来分析一些日志数据(主要原因:它看起来很简单,而且我有足够的数据)
日志中的每一行都有这种格式
<UUID> <Event> <Timestamp>
Run Code Online (Sandbox Code Playgroud)
事件可以是INIT,START,STOP,ERROR等.我最感兴趣的是同一个UUID的START和STOP事件之间经过的时间.
例如,我的日志包含这些条目
35FAA840-1299-11DF-8A39-0800200C9A66 START 1265403584
[...many other lines...]
35FAA840-1299-11DF-8A39-0800200C9A66 STOP 1265403777
Run Code Online (Sandbox Code Playgroud)
我当前的线性程序读取文件,记住内存中的启动事件,并在找到相应的结束事件后将经过的时间写入文件(其他事件的行当前被忽略,ERROR事件使UUID失效,它将也被忽略了)1
我想将其移植到Hadoop/MapReduce程序.但我不知道如何匹配条目.拆分/标记文件很容易,我想找到匹配将是Reduce-Class.但那会是什么样子?如何在MapReduce作业中找到mathing条目?
请记住,我的主要关注点是了解Hadopo/MapReduce; 欢迎链接到Pig和其他Apache程序,但我想用纯Hadoop/MapReduce来解决这个问题.谢谢.
1) 由于日志来自正在运行的应用程序,因此一些启动事件可能还没有相应的结束事件,并且由于日志文件拆分,将会有没有启动事件的结束事件
java ×3
multi-factor-authentication ×2
spring-boot ×2
hadoop ×1
mapreduce ×1
maven ×1
spring-mvc ×1
totp ×1
webauthn ×1