我有一个Web应用程序,用户必须登录.密码存储在LDAP服务器中.有关LDAP服务器的所有信息都作为外部jndi资源存储在应用程序服务器(glassfish)中.所以我的应用程序对LDAP服务器一无所知,只得到像这样的LdapContext:
@Resource(name = "ldap/users")
private LdapContext ctx;
Run Code Online (Sandbox Code Playgroud)
使用此上下文,可以轻松更改或读取为用户存储的信息,但如何检查其密码?通常我会做一个新的连接来检查用户密码.像这样:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");
DirContext ctx = new InitialDirContext(env);
Run Code Online (Sandbox Code Playgroud)
但由于我不知道这个参数我不能这样做.那么如何使用我的LdapContext检查用户的密码是否正确?密码以加密方式存储(ssha),所以我不能只比较属性.
谢谢拉斐尔
在我们内部使用的网站上,我显示了本地文件和文件夹的链接.链接是这样的:
href="file://C:/example/"
href="file://C:/example/test.odt"
Run Code Online (Sandbox Code Playgroud)
问题是,目录的链接确实在firefox本身打开,并带有无用的目录列表.没用是因为你只能看到文件或打开它们但不能复制,插入,删除......文件链接工作正常,文件由OpenOffice打开.通过更改firefox的配置并将以下键设置为false,我可以使用explorer.exe打开该目录,但是对于该文件,我必须选择正确的应用程序.
network.protocol-handler.expose.file
Run Code Online (Sandbox Code Playgroud)
有人知道如何让两者都像我想要的那样工作吗?表示目录由explorer.exe显示,所有文件由正确的应用程序打开.这可以通过配置Firefox或Windows,更改链接,甚至编写一个小程序来正确打开所有文件协议,并将用作firefox中文件协议的协议处理程序.
谢谢拉斐尔
我知道FileDownloader用a 创建一个和调用扩展非常容易Button.但是如何在没有Button?的情况下开始下载?
在我的特定情况下,我现在有一个ComboBox和我想要发送给用户的文件是在根据输入更改其值后生成的.应立即发送该文件,而无需等待再次单击.这很容易吗?
谢谢拉斐尔
我基本上了解@DeclareRolesand的功能@RolesAllowed,但我不确定在哪里@DeclareRoles正确添加。我在 glassfish 4 中使用带有 ejb 会话 bean 和 cdi 的 vaadin 应用程序进行测试。该应用程序被打包成战争而不是耳朵。
@DeclareRoles对无类:HttpServletRequest.isUserInRole()并且SessionContext.isCallerInRole()总是返回false。@RolesAllowed总是拒绝访问。@DeclareRoles在 Servlet 上:@RolesAllowed并且HttpServletRequest.isUserInRole()按预期工作。SessionContext.isCallerInRole()总是返回false。@DeclareRoles在会话 bean: 上@RolesAllowed,HttpServletRequest.isUserInRole()并按SessionContext.isCallerInRole()预期工作。即使SessionContext.isCallerInRole()在与使用不同的会话 bean 中调用@DeclareRoles我现在的问题是:
@DeclareRoles?SessionContext.isCallerInRole()or 的bean @RolesAllowed?我正在使用vaadin 7,在我的应用程序中,我有时会使用子窗口.在一个案例中,我有一个模态窗口,里面有几个组件.单击模态窗口内的某些组件时,它会打开另一个窗口.我希望这个窗口在用户点击它时自动关闭(例如再次在模态窗口上).在Vaadin采样器中,这种行为似乎在显示源时实现(单击右上角的源按钮).如果不是从模态窗口打开,则行为应该相同,但是从UI或任何其他子窗口打开.
我尝试了几件事:
使用Popupview是不可能的,因为我需要从组件(按钮或图像)打开窗口
将BlurListener添加到新窗口不起作用,因为如果我在窗口内单击,则会触发blurevent(例如移动窗口)
将ClickListener添加到UI没有帮助,因为单击模式窗口时未触发事件.
实现这一目标的正确方法是什么?
谢谢拉斐尔