我在Spring MVC项目中实现了一个自定义身份验证提供程序。在我自己的overate riding authenticate()方法中,我实现了自己的身份验证,我构建了自己的UserPasswordAuthenticationToken()并返回对象。
现在上述对象中的userid" UserPasswordAuthentictionToken"是匿名的,密码为null,权限设置为授予此用户的权限。
问题:
这是否会导致SecurityContextHolder或SecurityContext一般丢失传递给重写的authenticate()方法的Authenticate对象内的原始传入凭据?
如果没有,我该怎么做才能删除这些原始凭证并强制Spring安全上下文保存我的新匿名身份验证标识符[最好与其他元数据一起使用]。
答案 0 :(得分:0)
Java远程调试功能(JDWP)实际上没有危险,因为它在生产中代表了一个安全漏洞,因为它默认是关闭的。
这可能发生的唯一方法是,如果有人在生产中明确地将其打开,但生产团队可能永远不会允许它,并且他们是唯一在该机器上具有管理功能的人。
要在生产中打开调试,有人必须将这些参数添加到服务器启动脚本,或通过控制台设置它们:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<PORT>
这不可能偶然发生。您可以通过尝试使用IDE创建到生产计算机的调试远程连接来确认JDWP在生产中已禁用,它应该会失败。在尝试之前,最好禁用所有断点,以防万一。
如果JDWP在生产允许由于某种原因,生产队可以在服务器的防火墙配置为仅允许对JDWP端口连接,如果来自IP地址的某一可接受的列表中,防止从远程调试生产开发者和访问机密信息。