处理401错误(Spring Security)

我可以处理404错误。 @ResponseStatus(value = HttpStatus.NOT_FOUND) @ExceptionHandler(NoHandlerFoundException.class) @ResponseBody public void noHandlerFoundException (HttpServletResponse response) throws IOException{ //some code } 但是如何处理401错误? 编辑我使用的是Java而不是web.xml 编辑我应该在NoHandlerFoundException中放置什么来处理HttpStatus.UNAUTHORIZED 编辑 validation失败时,我的方法不成功validation: public class StatelessLoginFilter extends AbstractAuthenticationProcessingFilter { protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException, ServletException { SecurityContextHolder.clearContext(); if (logger.isDebugEnabled()) { logger.debug(“Authentication request failed: ” + failed.toString()); logger.debug(“Updated SecurityContextHolder to contain null Authentication”); […]

如何在OS X上的Swing中启用LCD子像素抗锯齿?

我被要求查看Swing中的旋钮,使文本尽可能清晰易读。 有没有办法在OS X上的Java 1.7+上的Swing应用程序中启用子像素文本抗锯齿? Java中是否还有其他任何可以使文本可读的设置? 观察: 在OS X上的Java 1.7上,无论我做什么,所有文本都是灰色的。 即使子像素渲染不起作用, RenderingHints.VALUE_TEXT_ANTIALIAS_ON也比RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB暗。 为什么? 默认情况下,Mac上的JComponent使用RenderingHints.VALUE_TEXT_ANTIALIAS_ON (深灰色抗锯齿)进行RenderingHints.VALUE_TEXT_ANTIALIAS_ON 。 在Java 1.6上, -Dapple.awt.graphics.UseQuartz=true确实启用了LCD抗锯齿,但该设置对Oracle Java 1.7没有影响。 在Linux上,所有子像素抗锯齿提示都能正常工作,并且JComponent默认使用HRGB抗锯齿。 同样的屏幕截图为300% 这是我使用的代码: import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.UIManager; import sun.swing.SwingUtilities2; public class TextAntialiasDemo { public static JLabel createJlabel(String name, final Object textAntialiasing) { JLabel label = […]

用Java清除数据报缓冲区

所以我从互联网上获得了这个简单的udp客户端/服务器代码,它可以工作。 但是,当我输入比我之前输入的东西短的东西时,我会剩下剩下的字符。 例如,如果我先输入: kitty 然后输入: cat 第二个印刷品如下: catty 我一直在寻找其他有类似问题的人,他们中的大多数似乎都是通过清除字节数组来解决的。 但是,如果我尝试实现他们的答案,它不能解决我的问题。 我需要做什么,并且(可能更重要的是)代码应该去哪里? 这是代码: 客户: import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName(“localhost”); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence […]

如何使用Java测量网络的响应时间?

我们有一个客户端和一个服务器。 我想测量它们之间网络的响应时间。 当我向服务器发送请求时,它应立即响应我的请求,它应该像ping请求,以便在服务器上没有处理时间。 我怎么能用Java做到这一点?

如何使我的xml安全地进行解析(当它具有&字符时)?

我已经获得了一个xml字符串,我需要通过解析器。 它目前因为非法的xml字符而抱怨。 很简单的例子: this & that 我知道解决方案是替换& & ,但我没有生成XML,因此无法控制值。 简单的字符串替换不是正确的方法,因为’&’在XML中具有特殊含义,并且全局替换’&’与’&’ 会破坏预期的特殊含义。 是否有一个解决方案来获取一个完整的xml文档并“修复”它以便’&’成为’&’,但只是在预定的位置? 我可以安全地将’&’替换为’& ‘(注意两边的空格)?

Lua / Java / LuaJ – 处理或中断无限循环和线程

我正在使用LuaJ在Java中运行用户创建的Lua脚本。 但是,运行永不返回的Lua脚本会导致Java线程冻结。 这也使线程不可中断。 我运行Lua脚本: JsePlatform.standardGlobals().loadFile(“badscript.lua”).call(); badscript.lua包含while true do end 。 我希望能够自动终止陷入不屈的循环的脚本,并允许用户在运行时手动终止他们的Lua脚本。 我已经阅读了有关debug.sethook和pcall的内容 ,但我不确定我是如何正确地将它们用于我的目的。 我也听说沙盒是一个更好的选择,虽然这有点超出我的范围。 这个问题也可能仅扩展到Java线程。 我没有找到关于在一段while (true);中断Java线程的任何确切信息while (true); 。 在线Lua演示是非常有前途的,但似乎“坏”脚本的检测和终止是在CGI脚本而不是Lua中完成的。 我是否可以使用Java调用CGI脚本,后者又调用Lua脚本? 不过,我不确定是否允许用户手动终止他们的脚本。 我丢失了Lua演示源代码的链接,但我手头有它。 这是神奇的路线: tee -a $LOG | (ulimit -t 1 ; $LUA demo.lua 2>&1 | head -c 8k) 有人能指出我正确的方向吗? 一些来源: 嵌入式Lua – 超时流氓脚本(例如无限循环) – 任何人的例子? 防止Lua无限循环 嵌入式Lua – 超时流氓脚本(例如无限循环) – 任何人的例子? 当一些循环执行长任务时如何中断线程? 在Java中指定的时间限制后杀死线程

将文件从src文件夹加载到阅读器中

我想知道如何从src文件夹lol.txt文件lol.txt加载到我的close方法中。 到目前为止的代码: public void close() throws IOException { boolean loadFromClasspath = true; String fileName = “…”; // provide an absolute path here to be sure that file is found BufferedReader reader = null; try { if (loadFromClasspath) { // loading from classpath // see the link above for more options InputStream in = getClass().getClassLoader().getResourceAsStream(“lol.txt”); reader […]

cglib – MethodInterceptor&finalize?

我使用cglib MethodInterceptor来包装服务。 在每次调用服务时,它应该打开数据会话,将调用传递给服务,最后关闭会话。 但是,我注意到从Finalizer调用它时行为不端。 我得到以下stacktrace: java.lang.IllegalArgumentException: interface my.pkg.SomeInterface is not visible from class loader at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581) at my.pkg.ProxyFactory.create(ProxyFactory.java:68) at my.pkg.SomeService.make(SomeService.java:181) at my.pkg.SomeService$SessionWrappingInterceptor.intercept(SomeService.java:1275) at my.pkg.SomeService$$EnhancerByCGLIB$$b58faf6a.finalize() at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) 我究竟做错了什么? 我该如何解决?

限制JPA中集合的大小

说我有这样的实体 @Entity Class A{ //fields @Onetomany Set b; // } 现在,我如何限制集合中’B’的数量,使得当集合中有新条目时,最旧的条目被删除,有些像我们在LinkedHashMap中有的removeEldestEntry 。 我正在使用带有Hibernate的MySQL 5.5 DB。 提前致谢。 编辑 我的目标是在任何时间点都不要在该表中包含超过N个条目。 我的一个解决方案是使用Set并安排作业来删除旧条目。 但我发现它很脏。 我正在寻找一个更清洁的解决方案。

方面在运行时编织

我正在寻找一种Java解决方案,它允许我在运行时使用AOP在已经运行的代码之上编写新代码。 关键是不要求重启JVM。 此外,我想在运行时删除编织,让旧代码在编织之前运行。 我在想AspectJ加载时编织+运行时类加载/卸载会做到这一点。 有人试过吗? 有什么建议? 谢谢。