本来很简单的事情,你却把它搞复杂了。
我想为每个匿名用户生成不同的令牌。这可能吗
生成有效令牌后,用户将成为经过身份验证的用户。
String principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
您可以为匿名用户创建一个会话来标识他,如下所示
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Object principal = authentication.getPrincipal();
if(principal instanceof String && ((String)principal).equalsIgnoreCase("anonymousUser"))
{
if(request.getSession(false) == null)
{
HttpSession session = request.getSession();
session.setMaxInactiveInterval(300); // As per Your requirement
// store session id from session and ip address from request in to DB or cache if required and use it
}
else
{
//identify anonymous user against session id and stored details
}
}
您可以通过注册筛选器来实现这一点
FilterRegistrationBean
应用程序类: application.yml:
我们使用的是带有Spring Security性的Spring MVC。 该网站应可供匿名用户使用,包括首选项设置(例如打开或关闭页面上的筛选器)。 如果匿名用户在第二天返回(在新会话中),应记住这些首选项。 匿名用户可以随时选择注册配置文件(用户/密码组合),以前匿名用户设置的所有首选项都应存储在新的配置文件中。 或者,匿名用户可以选择使用已注册的配置文件登录,并且应该向他们提供将匿名设置的首选
我试图用Spring的授权授予流来保护我的REST Api。 我正试图使用这个auth访问/api/user,它来自用户登录后的auth服务器令牌请求... 怎么了?
我有一个Keycloak(独立)V1.9.4。最后在AWS实例上使用Wildfly 10安装安装程序,并尝试使用Keycloak(通过Keycloak的登录页面)和Twitter4j来验证Twitter用户,然后明显地让我的应用程序验证并查看用户的时间线等。 我已经配置了身份提供程序(Twitter)、领域和我的客户端应用程序。 我还在apps.Twitter.com上设置了一个Twitter应用
我的所作所为 首先,我承认我缺乏Spring安全知识。 我可以接收access_token、refresh_token等等,一切都非常好,甚至我可以使用接收的access_token访问url http://localhost:8282/melayer/articles (二)。curl http://localhost:8282/melayer/articles-h“授权:携带者 我想了解的是
我希望能够识别唯一的匿名用户,所以我可以在数据库中为该用户存储一些信息。一个客人购物车之类的东西。 我并不特别想使用会话,因为如果我一直使用无会话数据方法构建,我喜欢服务器之间的故障转移。 在spring security或generic spring中,是否有任何方法可以获得一个标识令牌,我可以使用它来标识特定的匿名用户(主键)?