我有一个使用 spring boot oauth2.0 构建的身份验证服务器,并遵循 david_syer 模型。
我的身份验证服务器执行以下操作 -
让用户通过第三方 oauth 提供商(如 google)登录,或让用户使用用户名和密码在我们的服务器上创建帐户并生成令牌。
因此,当用户使用像 google 这样的外部 oauth 登录时,我只需存储令牌并将相同的(google)令牌传递到我的 UI 应用程序以访问资源 api 服务器。我有一个验证令牌并允许 api 访问的身份验证过滤器。
当用户使用用户名和密码获取令牌时,我们存储用户及其权限并为他生成令牌。现在,UI 使用我们的身份验证服务器生成的令牌来访问资源 api 服务器。
现在我的问题是
因此,如果用户来自永恒的提供者,加载用户和用户权限(来自 UserDetailsService 的 loadUserByUsername() )的 spring security 将不会有任何东西。
在我正在工作的项目中,我需要生成n个随机double数(取决于输入文件的内容)或者doubles如果我从输入文件中将它们转换为它们.逗号后面的这些数字应该只有2位小数(例如:)0.98.
我知道在Java 8中,有两种方法可以做到这一点:
nthNumber = Double.parseDouble(new DecimalFormat("#.##").format(ThreadLocalRandom.current().nextDouble(0,1)).replace(",","."));nthNumber = Double.parseDouble(new DecimalFormat("#.##").format(new Random().nextDouble()).replace(",", "."));渐渐地说,哪个是最快的?根据我对ADS的不了解,我会说它会是同一时间(O(n)?),但我并不是百分百肯定
除了这两种方式外,还有什么其他的方法来生成随机doubles之间0以及1它们更快,渐进地说,比我的建议?(相反,是否有方法可以做任何事情O(n)或O(1)?)
提前感谢所有花一分钟回答我这个问题的人