Tag: glassfish

Glassfish安全性 – jdbcRealm:如何使用SHA-256摘要配置登录

我在glassfish v3.0.1 b22中使用jdbcRealm来保证安全性。 它的设置是为了通过以下博客使用我的数据库中的USER表进行身份validation: http : //blogs.oracle.com/foo/entry/mort_learns_jdbc_realm_authentication 。 如果我将摘要算法保留为纯文本,我的工作正常。 但是,当我尝试使用SHA-256进行摘要算法时,它会停止工作。 我所做的是在Glassfish中指定 – 安全 – 领域 – jdbcRealm – 我想要SHA-256的摘要(我只是在摘要字段中键入SHA-256)。 然后我编写了一个简单的Java程序,将密码文本转换为SHA-256哈希。 然后我将该哈希粘贴到数据库中的密码字段中。 顺便说一句,密码字段是类型varchar(30)。 我不能再登录了。 有一点我注意到我的简单Java程序每次为同一文本字段生成不同的哈希。 下面是我简单的java程序: MessageDigest md = MessageDigest.getInstance(“SHA-256”); String text = “admin”; md.update(text.getBytes(“UTF-8”)); byte[] digest = md.digest(); System.out.println(digest.toString());

Glassfish 3安全性 – 使用JDBC Realm进行基于表单的身份validation

我想通过glassfishV3了解基于表单的安全性和JDBC领域,所以我决定创建一个允许登录和退出的小应用程序,我按照本书中的说明进行操作。 我理解保持的东西是如何工作的,但是有些东西是错的,我无法让它正常工作。 我首先做的是用JPA注释创建一个小数据库: @Entity @Table(name=”USERS”) public class User implements Serializable { private static final long serialVersionUID = -1244856316278032177L; @Id @GeneratedValue @Column(nullable = false) private Long id; @Column(nullable = false) private String email; @Column(nullable = false) private String password; @OneToMany(mappedBy = “user”) private List groups; //GET & SET METHODS… } 这是另一个包含每个用户角色的表 @Entity @Table(name=”GROUPS”) public class Group […]

Glassfish无法在root用户部署,因为声明了default-web-module

尝试从Netbeans和Admin Console部署到Glassfish Server开源版3.1.2.2(版本5)时,会抛出以下消息。 尽管Admin Console的“ Applications部分没有已部署的应用程序。 我尝试重新启动域名但没有成功。 Exception while loading the app : java.lang.Exception: WEB0145: Unable to deploy web module [*module name*] at root context of virtual server [server], because this virtual server declares a default-web-module 是否有任何缓存或可以清空的东西,以清理根,以便我可以再次在根上下文部署我的应用程序? 谢谢你的帮助! 步骤1 我在Glassfish -directory上使用一个简单的grep -command开始使用”default-web-module” 。 似乎这是在domains/domain1/config/domain.xml (我怎么能错过这个想法?)。 第2步 内部domain.xml如下: … … 此外,此application还提供对以前在root-context=”/”部署的applicationname的多个引用。 我一回到家,就会尝试删除这个… (当然还有domain.xml的备份)。 希望这将解决问题,并且我将能够再次部署到root !

存档中部署描述符文件WEB-INF / web.xml中的无效部署描述符

我正在使用GlassFish服务器的Java项目。项目中没有错误但是当我试图运行它时,它显示此错误_ SEVERE: DPL8015: Invalid Deployment Descriptors in Deployment descriptor file WEB-INF/web.xml in archive [web]. Line 9 Column 22 — cvc-complex-type.2.4.d: Invalid content was found starting with element ‘description’. No child element is expected at this point. SEVERE: DPL8005: Deployment Descriptor parsing failure : cvc-complex-type.2.4.d: Invalid content was found starting with element ‘description’. No child element […]

无法使用Glassfish上的jax-ws进行身份validation

我一直在尝试创建一个使用SSL进行基本身份validation的java服务。 配置SSL非常简单,但配置身份validation更成问题。 每当我尝试调用标有@RolesAllowed注释的方法时,我都会收到以下exception… Exception in thread “AWT-EventQueue-0” javax.xml.ws.soap.SOAPFaultException: javax.ejb.EJBAccessException at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178) at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:129) at $Proxy30.reverseString(Unknown Source) at securitytestclient.SecurityTestClient.reverseStringSOAP(SecurityTestClient.java:305) at securitytestclient.SecurityTestClient.buttonReverseActionPerformed(SecurityTestClient.java:217) at securitytestclient.SecurityTestClient.access$000(SecurityTestClient.java:20) at securitytestclient.SecurityTestClient$1.actionPerformed(SecurityTestClient.java:72) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener$Actions.actionPerformed(BasicButtonListener.java:303) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661) at javax.swing.JComponent.processKeyBinding(JComponent.java:2879) at javax.swing.JComponent.processKeyBindings(JComponent.java:2926) at javax.swing.JComponent.processKeyEvent(JComponent.java:2842) at java.awt.Component.processEvent(Component.java:6282) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at […]

HttpServletResponse似乎会过早定期发送

我正在进行一个设置,它将一个http请求(用于测试目的的GET)带到java servlet。 工作原理是,ser从浏览器接收请求,解析它并通过TCP套接字将其发送到’main’服务器,后者处理请求并发回响应。 然后,servlet拉出先前存储在ConcurrentHashMap中的HttpServletResponse,打开PrintWriter,然后发回响应。 一切顺利,除了HttpServletResponse并不总是发回写入PrintWriter的信息。 浏览器每次都会收到“OK”响应,但通常响应不包含我尝试编写的任何信息。 下面我给出了初始的doGet的代码,它传递了HttpServletResponse实例,然后是写入Response缓冲区的方法。 之后包括浏览器接收它们时的响应。 在此之后,关于如何可靠地获得预期结果的一些观察,以防有助于确定问题。 请注意,唯一的变量似乎是响应是否被写入; 我已经倾倒了输出日志,并且找不到按预期写入响应的时间和不按预期的时间之间的任何其他差异。 我写的HTTPServletResponseListener每次都会收到响应。 [使用Glassfish 3.1.1] protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String js = request.getParameter(“json”); // Omitting try-catch for space Message msg = this.parser.parseToMessage(js); this.sc.send(msg, new HTTPServletResponseListener(response)); } 以及在响应时调用的HTTPServletResponseListener方法(除了仅将本地HttpServletResponse分配给本地字段的构造函数之外,这是唯一的方法) public void handleResponse(ResponseMessage response) { DataParser parser = new JSONParser(); String temp = […]

部署错误:从netbeans到glassfish 4.0的Java-Webproject

建立 我在我的专用服务器和JDK 1.7上在Mac OSX Mavericks和Glassfish 4.0 (build 89)上使用Netbeans 7.4 。 要在本地使用服务器我设置和ssh-tunnel。 方式如下: ssh -L 4848:127.0.0.1:4848 -p 6122 glassfish@XXXXXXXXXX 这工作得很好,我可以通过localhost访问服务器没有任何问题。 要使用此服务器,我在Netbeans中添加了一个服务器,请参阅prinscreen: 问题 现在我想将项目部署到服务器(右键单击项目 – >部署),但我得到以下错误: Building jar: /Users/tzhware7/NetBeansProjects/SkyLogicAddon/dist/SkyLogicAddon.war Distributing /Users/tzhware7/NetBeansProjects/SkyLogicAddon/dist/SkyLogicAddon.war to [glassfish.ivo] glassfish.ivo, deploy, null, false /Users/tzhware7/NetBeansProjects/SkyLogicAddon/nbproject/build-impl.xml:1050: The module has not been deployed. See the server log for details. BUILD FAILED (total time: 1 second) 现在我检查了错误显示向上的行,这是跟随(1049-1051)。 […]

使用CDI注入PersistenceContext

目前,我正在使用PersistenceContext来注入EntityManager。 EM完美注入。 @Stateless public StatelessSessionBean implements StatelessSessionBeanLocal { @PersistenceContext(unitName = “MyPersistenceUnit”) private EntityManager em; @Override public Collection getAllObjects(){ CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriqQuery query = cb.createQuery(MyObject.class); query.from(MyObject); return em.createQuery(query).getResultList(); } } 现在我尝试装饰豆子,突然间em没有被注射。 我得到一个NullPointerException。 @Decorator public StatelessSessionBeanDecorator implements StatelessSessionBeanLocal { @Inject @Delegate @Any StatelessSessionBeanLocal sb @Override public Collection getAllObjects(){ System.out.println(“Decorated method!”); return sb.getAllObjects(); } } 我知道EJB和CDI是两个完全不同的管理器,所以那个人不了解另一个。 […]

使用servlet 3.0添加动态servlet会引发exception

我需要在运行时创建添加servlet。 当我运行以下代码时。 protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType(“text/html;charset=UTF-8”); PrintWriter out = response.getWriter(); try { out.println(“”); out.println(“”); out.println(” URI out”); out.println(“”); out.println(“”); Integer generatedKey = Math.abs(randomiser.nextInt()); out.print(generatedKey); createServlet(Integer.toString(generatedKey),request.getServletContext()); } finally { out.println(“”); out.println(“”); out.close(); } } private void createServlet(String generatedKey, ServletContext servletContext) { String servletMapping = “/”+generatedKey; ServletRegistration sr = servletContext.addServlet(generatedKey, “com.path.lbs.servlets.testDynamic”); […]

如何使用Java EE 7和Glassfish 4在IntelliJ IDEA Community Edition中创建Java Servlet应用程序?

我想创建一个Java Servlet。 除了Java语言之外,我对Java生态系统一无所知。 我的机器和JRE 6上已经安装了JDK 1.8.0_65。 我抬头看了这篇文章 。 它说我可以使用Glassfish作为应用服务器。 Java 7 EE附带Glashfish 4。 所以,我去了这个页面并下载了适用于Windows的Java平台企业版7 SDK Update 2 。 我正在运行64位Windows 7家庭高级版。 它目前是一个128 MB的下载。 要安装它,我在这个网页上查找了非常无用的说明。 这对我没有帮助,因为这个页面几乎没有说什么,除了:请解压缩你的下载然后???,然后获利。 但这段video对我有帮助。 这就是我做的。 我解压缩该文件夹并将未压缩的文件夹放在我的%Program Files%\ Java文件夹中。 然后我运行%Program Files%\ Java \ java_ee_sdk-7u1 \ glassfish4 \ glassfish \ bin \ startserv.bat文件并浏览到Url http:// localhost:4848并且Glassfish控制台启动就好了。 然后,根据本页 创建项目部分中的说明 ,我打开了之前已安装的IntelliJ IDEA Community Edition 2016.2.1 IDE,并在启动对话框中单击了“ 创建新项目”菜单项。 但是,在New Project对话框中,我没有看到文章建议的Java […]