我正在使用Identity 2.0框架进行用户管理.
不幸的是,在我的用例中,使用直接链接无法完成帐户激活/密码重置,因此用户必须从他的电子邮件中复制代码并将其粘贴到网站中.
由UserManager默认GenerateEmailConfirmationTokenAsync方法生成的代码非常长,它跨越大约3行文本.我试图覆盖此方法,生成更加用户友好的更短代码.这不起作用,因为该ConfirmEmailAsync方法总是返回"无效令牌"(此方法根本不调用该GenerateEmailConfirmationTokenAsync方法).
我不知道如何存储确认代码,我更喜欢使用Identity Framework的默认存储机制,而不是手动将其存储在数据库中.
由于Identity 2.0框架是封闭源代码,我不知道如何继续.是否可以生成自定义(更短)的确认码以及除了我已经做过的事情之外我应该覆盖哪些方法?
我可能忽略了这一点,但我想在我的网站上实施Google Talk和Google Hangout,我正在寻找某种(官方的,最好是PHP)API调用来检索Google+用户的在线/离线联系人.(类似于Gmail旁边的在线联系人列表)
这是API功能可用,并且可以提供与该选项的用户选择联系人(或多个)启动一个谷歌的Hangouts并邀请?
我的webapplication抛出以下ClassCastException:
java.lang.ClassCastException: org.postgresql.jdbc4.Jdbc4ResultSetMetaData
cannot be cast to org.postgresql.jdbc4.Jdbc4ResultSetMetaData
Run Code Online (Sandbox Code Playgroud)
显然这些类是相同的,所以这是一个奇怪的错误.
我发现使用-verbose:class该类Jdbc4ResultSetMetaData从两个jar文件加载,一个在我的Jetty lib/ext /目录中,另一个在我的webapplication中的/ WEB-INF/lib目录中.这些jar文件版本完全相同(md5sum完全相同)
这让我相信它确实是完全相同的类,但ClassCastException可能是由两个不同的类加载器加载同一个类引起的.
是否可以记录/跟踪使用jvm参数加载类的类加载器的名称或id?
我正在尝试使用Wicket Page Test来测试我的wicket项目.
启动测试会导致Jetty抛出此错误:
2015-03-24 17:46:24,789 WARN [:] [main] [] [||] - org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext
java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@4c451268 in org.eclipse.jetty.security.ConstraintSecurityHandler@4abb90f6
Run Code Online (Sandbox Code Playgroud)
我的testng套件看起来像这样:
<suite name="wicket-page-test-sample">
<test verbose="2" name="tests" annotations="JDK">
<packages>
<package name="..."></package>
</packages>
<classes>
<class name="com.ttdev.wicketpagetest.WebPageTestContext"></class>
<class name="nl.pack.test.MessagePanelTest"></class>
</classes>
</test>
Run Code Online (Sandbox Code Playgroud)
测试类看起来像这样:
@Test
public class MessagePanelTest
{
public void testOpenComponent()
{
final StringBuffer log = new StringBuffer();
MockableSpringBeanInjector.mockBean("hibernateService", mock(HibernateService.class));
WicketSeleniumDriver ws = WebPageTestContext.getWicketSelenium();
ws.openComponent(new ComponentFactory()
{
private static final long serialVersionUID = 1L;
public Component createComponent(String id) …Run Code Online (Sandbox Code Playgroud) 每次我尝试在调试模式下启动时,Glassfish 4.0 final都会给出超时.服务器上的正常运行(来自Eclipse)在没有超时的情况下工作.
我尝试从Eclipse Juno和Eclipse Kepler运行Glassfish 4.0,两者都有正确的调试端口配置(9009),两者都无法在调试中启动Glassfish.
这是一个已知的问题吗?我该如何解决?
我正在尝试对向匿名用户开放的 Django Rest API 强制执行 CSRF。为此,我尝试了两种不同的方法:
CSRFAPIView从一个基本视图扩展选定的 API 视图,该视图@ensure_csrf_cookie在调度方法上有一个注释。enforce_csrf()无论用户是否登录都适用。在这两种方法中,CSRF 检查似乎都在表面上起作用。如果 cookie 中缺少 CSRF 令牌或令牌长度不正确,端点将返回403 - Forbidden. 但是,如果我编辑 cookie 中的 CSRF 令牌的值,则该请求将被毫无问题地接受。所以我可以使用 CSRF 的随机值,只要它的长度正确。
此行为似乎偏离了常规 Django 登录视图,其中 CSRF 的内容确实很重要。我正在本地设置中使用 debug/test_environment 标志进行测试。
我在 DRF 中进行的自定义 CSRF 检查未经过深入验证的原因可能是什么?
自定义身份验证的代码片段:
class RestCsrfAuthentication(SessionAuthentication):
def authenticate(self, request):
self.enforce_csrf(request)
rotate_token(request)
return None
Run Code Online (Sandbox Code Playgroud)
并在设置中:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'csrfexample.authentication.RestCsrfAuthentication',
]
}
Run Code Online (Sandbox Code Playgroud) 我在使用 Spring Framework 和 Jetty 8.1 的 Java 应用程序中使用 Keycloak 3.4 和 Keycloak Jetty-81-Adapter 3.4。
根据 Keycloak 文档,我应该能够在 Java EE 应用程序中使用 HttpServletRequest 从 Keycloak 注销。但是,这在我的情况下不起作用,即使 Jetty 支持 HttpServletRequests。
您可以通过多种方式注销 Web 应用程序。对于 Java EE servlet 容器,您可以调用 HttpServletRequest.logout()..
如果我尝试以这种方式注销,我会被重定向到 keycloak(登录屏幕,可选择从多个领域登录中进行选择)。然而,当我选择我的首选领域时,我会立即再次登录到 Web 应用程序,而无需提供任何凭据。
我尝试了另一种方法,通过重定向到 Keycloak:
对于其他浏览器应用,可以将浏览器重定向到
http://auth-server/auth/realms/ {realm-name}/protocol/openid-connect/logout?redirect_uri=encodedRedirectUri
但它会在 Keycloak 日志中引发连接拒绝错误,因为 Keycloak 尝试以直接方式调用我的 web 应用程序。它对保持活动状态的 Keycloak 会话没有影响。我强烈希望不需要从 Keycloak 直接到 webapp 的服务器端调用。
HttpServletRequest.logout()在我的情况下,为什么不破坏 keycloak 会话的任何建议?HttpServletRequest 的 Jetty 实现是否与 Java EE 实现如此不同以至于它根本无法工作?
java ×3
asp.net ×1
c# ×1
classloader ×1
csrf ×1
django ×1
glassfish-4 ×1
google-plus ×1
google-talk ×1
jetty ×1
keycloak ×1
logout ×1
testng ×1
wicket ×1