Glassfish JDBC Realm with Digest Authentication

I'm working on a Java REST project and I'm currently using a JDBC Realm with Basic authentication. I'm storing SHA-256 hashes of passwords and Basic authentication works fine. To switch to Digest authentication i changed the JAAS Context of the realm from jdbcRealm to jdbcDigestRealm and in web.xml set the auth-method to DIGEST. This, for some reason causes the authentication only

具有摘要式身份验证的Glassfish JDBC领域

我正在开发一个Java REST项目,并且我正在使用基本身份验证的JDBC Realm。 我正在存储SHA-256哈希密码和基本身份验证工作正常。 要切换到摘要式身份验证,我将领域的JAAS上下文从jdbcRealm更改为jdbcDigestRealm,并在web.xml中将auth-method设置为DIGEST。 由于某种原因,如果我自己提供散列,这会导致认证成功。 当设置为摘要式身份验证时,Glassfish似乎不会自动对提供的密码字符串进行哈希处理,然后检查它,就像基本身

How to use java.net.URLConnection to fire and handle HTTP requests

Use of java.net.URLConnection is asked about pretty often here, and the Oracle tutorial is too concise about it. That tutorial basically only shows how to fire a GET request and read the response. It doesn't explain anywhere how to use it to among others perform a POST request, set request headers, read response headers, deal with cookies, submit a HTML form, upload a file, etc. So, how

如何使用java.net.URLConnection来触发和处理HTTP请求

在这里经常会问到java.net.URLConnection用法,Oracle教程太简单了。 该教程基本上只展示了如何激发GET请求并读取响应。 它没有解释如何使用它来执行POST请求,设置请求标题,读取响应标头,处理cookie,提交HTML表单,上传文件等。 那么,如何使用java.net.URLConnection来触发和处理“高级”HTTP请求呢? 首先是免责声明:发布的代码片段都是基本示例。 您将需要处理普通IOException s和RuntimeException s,如NullPoint

Best practice for REST token

I'm looking for a way to enable token-based authentication in Jersey. I am trying not to use any particular framework. Is that possible? My plan is: A user signs up for my web service, my web service generates a token, sends it to the client, and the client will retain it. Then the client, for each request, will send the token instead of username and password. I was thinking of using a

REST令牌的最佳做法

我正在寻找一种在泽西岛启用基于令牌的身份验证的方法。 我试图不使用任何特定的框架。 那可能吗? 我的计划是:用户注册我的Web服务,我的Web服务生成一个令牌,将其发送给客户端,客户端将保留它。 然后,客户端为每个请求发送令牌,而不是用户名和密码。 我正在考虑为每个请求和@PreAuthorize("hasRole('ROLE')")使用自定义过滤器,但我只是认为这会导致对数据库的很多请求来检查令牌是否有效。

Parse HTML "style" attribute using Java

I have HTML code parsed to org.w3c.dom.Document . I need check all tag style attributes, parse them, change some CSS properties and put modified style definition back to attribute. Is there any standard ways to parse style attribute? How can I use classes and interfaces from org.w3c.dom.css package? I need a Java solution. If you want a way to do this without any dependencies you can use

使用Java解析HTML“style”属性

我有解析为org.w3c.dom.Document HTML代码。 我需要检查所有标记style属性,解析它们,更改一些CSS属性并将修改后的样式定义返回到属性。 有没有标准的方法来解析style属性? 我如何使用org.w3c.dom.css包中的类和接口? 我需要一个Java解决方案。 如果您想要一种无需依赖的方式来执行此操作,则可以使用javax.swing.text.html包类为您提供大部分操作: import javax.swing.text.html.*; StyleSheet styleSheet = new S

How to round a number to n decimal places in Java

What I would like is a method to convert a double to a string which rounds using the half-up method - ie if the decimal to be rounded is 5, it always rounds up to the previous number. This is the standard method of rounding most people expect in most situations. I also would like only significant digits to be displayed - ie there should not be any trailing zeroes. I know one method of doing

如何在Java中将数字四舍五入到小数点后n位

我想要的是将double转换为使用half-up方法进行舍入的字符串的方法 - 即,如果要舍入的小数位数为5,则它总是舍入到前一个数字。 这是大多数人在大多数情况下期望的四舍五入标准方法。 我也只想显示有效数字 - 即不应该有任何尾随零。 我知道这样做的一种方法是使用String.format方法: String.format("%.5g%n", 0.912385); 收益: 0.91239 这很棒,但它总是显示5位小数的数字,即使它们不显着: String.format("%.5g%n"

How to split a string in Java

I have a string, "004-034556" , that I want to split into two strings: string1=004 string2=034556 That means the first string will contain the characters before '-' , and the second string will contain the characters after '-' . I also want to check if the string has '-' in it. If not, I will throw an exception. How can I do this? Just use the appropriate

如何在Java中分割字符串

我有一个字符串"004-034556" ,我想分成两个字符串: string1=004 string2=034556 这意味着第一个字符串将包含'-'之前的字符,第二个字符串将包含'-'之后的字符。 我也想检查一下字符串是否有'-' 。 如果没有,我会抛出异常。 我怎样才能做到这一点? 只需使用适当的方法: String#split() 。 String string = "004-034556"; String[] parts = string.split("-"); String part1 = part

Convert String to double in Java

如何将一个String (如"12.34"转换为Java中的double ? You can use Double.parseDouble() to convert a String to a double : String text = "12.34"; // example String double value = Double.parseDouble(text); For your case it looks like you want: double total = Double.parseDouble(jlbTotal.getText()); double price = Double.parseDouble(jlbPrice.getText()); 如果在将字符串解析为十进制值时遇到问

将String转换为Java中的double

如何将一个String (如"12.34"转换为Java中的double ? 您可以使用Double.parseDouble()将String转换为double : String text = "12.34"; // example String double value = Double.parseDouble(text); 对于你的情况,它看起来像你想要的: double total = Double.parseDouble(jlbTotal.getText()); double price = Double.parseDouble(jlbPrice.getText()); 如果在将字符串解析为十进制值时遇到问题,则需要将数字

Difference between parseInt and valueOf in java?

What's the difference between these two methods? They appear to do exactly the same thing to me (also goes for parseFloat() , parseDouble() , parseLong() etc, how are they different from Long.valueOf(string) ? Edit: Also, which of these is preferable and used more often by convention? Well, the API for Integer.valueOf(String) does indeed say that the String is interpreted exactly as if i

java中parseInt和valueOf之间的区别?

这两种方法有什么区别? 他们似乎做了完全一样的事情(也适用于parseFloat() , parseDouble() , parseLong()等,它们与Long.valueOf(string)什么不同? 编辑:另外,这些是哪个更好,常规使用更多? 那么, Integer.valueOf(String)的API确实表示该String被解释为与赋予Integer.parseInt(String)完全一样。 但是, valueOf(String)返回一个new Integer()对象,而parseInt(String)返回一个基本int 。 如果你想享受Integ

How to check if a String is numeric in Java

在解析它之前,你会如何检查一个String是否是一个数字? With Apache Commons Lang 3.5 and above: NumberUtils.isCreatable or StringUtils.isNumeric . With Apache Commons Lang 3.4 and below: NumberUtils.isNumber or StringUtils.isNumeric . You can also use StringUtils.isNumericSpace which returns true for empty strings and ignores internal spaces in the string. (The linked javadocs contain detailed

如何在Java中检查字符串是否为数字

在解析它之前,你会如何检查一个String是否是一个数字? 使用Apache Commons Lang 3.5及更高版本: NumberUtils.isCreatable或StringUtils.isNumeric 。 使用Apache Commons Lang 3.4及更低版本: NumberUtils.isNumber或StringUtils.isNumeric 。 您还可以使用StringUtils.isNumericSpace ,它为空字符串返回true并忽略字符串中的内部空格。 (链接的javadoc包含每种方法的详细示例。) 这通常是用一个简单的用户定义函

Java optional parameters

How do I use optional parameters in Java? What specification supports optional parameters? varargs could do that (in a way). Other than that, all variables in the declaration of the method must be supplied. If you want a variable to be optional, you can overload the method using a signature which doesn't require the parameter. private boolean defaultOptionalFlagValue = true; public voi

Java可选参数

我如何在Java中使用可选参数? 什么规范支持可选参数? 可变参数可以做到这一点(以某种方式)。 除此之外,必须提供方法声明中的所有变量。 如果您希望变量是可选的,则可以使用不需要参数的签名来重载方法。 private boolean defaultOptionalFlagValue = true; public void doSomething(boolean optionalFlag) { ... } public void doSomething() { doSomething(defaultOptionalFlagValue); } 有几种方法可以