Spring OAuth2.0:根据客户端ID获取用户角色

我有多个客户注册我的oauth2 auth服务器。 假设user1具有诸如ROLE_A , ROLE_B用于client1的角色,同一用户具有诸如ROLE_C ,用于ROLE_C ROLE_D 。 现在当用户使用client1或client2登录时,他能够看到所有四个角色,即。 ROLE_A , ROLE_B , ROLE_C和ROLE_D 。 我的要求是当user1登录到client1时,它应该只返回角色ROLE_A和ROLE_B 。 当他使用ROLE_C登录时,它应该只返回ROLE_C和ROLE_D 为实现这一目标,我计划的是在身份validationfunction中,我需要获取clientId。 所以使用clientId和用户名我可以从db(client-user-roles-mapping表)中找到分配给用户的相应角色。 但问题是我不知道如何在authenticate函数中获取clientId @Override public Authentication authenticate(final Authentication authentication) throws AuthenticationException { String userName = ((String) authentication.getPrincipal()).toLowerCase(); String password = (String) authentication.getCredentials(); if (userName != null && authentication.getCredentials() != null) { String clientId = // HERE HOW […]

Tomcat不会刷新响应缓冲区

我在下面的Tomcat 7上测试了HttpResponse#flushBuffer和PrintWriter#flush HttpResponse#flushBuffer ,但似乎响应忽略了它们而不是像预期的那样在线上刷新内容。 import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(“/HelloServlet”) public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); pw.println(“say hi now”); pw.flush(); response.flushBuffer(); try { Thread.sleep(5000); } […]

JavaFX – 许多静态FXML控制器

存在JavaFX应用程序,应用程序从Main.class文件开始,该文件extends Application : public class Main extends Application { /** * Keep a reference to the main Stage */ public static Stage stage; /** * MainScene Controller */ public static MainScene mainSceneController; /** * The Capture Window of the application */ public static CaptureWindow captureWindowController; /** * Settings Scene Controller */ public static SettingsController settingsController; […]

Java for循环优化

我用java for循环做了一些运行时测试,并发现了一个奇怪的行为。 对于我的代码,我需要原始类型的包装器对象,如int,double等,以模拟io和输出参数,但这不是重点。 只需看我的代码。 具有字段访问权限的对象如何比原始类型更快? 具有prtimitive类型的for循环: public static void main(String[] args) { double max = 1000; for (int j = 1; j < 8; j++) { double i; max = max * 10; long start = System.nanoTime(); for (i = 0; i < max; i++) { } long end = System.nanoTime(); long microseconds = (end […]

在按钮操作上向JPanel添加背景图像

调用JButton时,将背景图像添加到JPanel / JLabel的最佳方法是什么? 我知道如何获得JButton动作等。 当按下该按钮时,我无法弄清楚或找到一种方法来改变背景图像。

如何在不按每次输入的情况下获取输入?

我做了一个简单的游戏(实际上还不是游戏),玩家可以在4×20个字符的房间内移动。 它在控制台中运行。 但是在我的游戏循环中,我希望能够在房间里四处走动,而不是每次想要移动时都按下输入。 玩家应该可以按w / a / s / d并立即更新屏幕,但我不知道该怎么做。 public class Main{ public static void main(String[] args){ MovementLoop(); } public static void MovementLoop(){ Scanner input = new Scanner(System.in); int pos=10, linepos=2; String keypressed; boolean playing = true; while(playing == true){ display dObj = new display(linepos, pos); dObj.drawImage(); keypressed=input.nextLine(); if(keypressed.equals(“w”)){ linepos -= 1; } else […]

在Android上限制语音识别结果

我正在创建一个应用程序,允许人们说话并在几个选项(字符串)之间进行选择。 我在使用Android语音识别器符合我的想法时遇到了一些问题。 有没有办法只将“有效”参数传递给SpeechRecognizer并让它在“最佳”匹配之间进行选择? 我不需要代码,我只需要一些指导,因为我的google-fu似乎今天失败了。

Java KeyListener keyPressed方法触发太快

如果你使用java KeyListener类,你知道如果按住一个键keyPressed将触发一个KeyEvent ,然后大约半秒后将非常快地多次触发相同的键。 我想知道是否有办法防止KeyEvents射击太快。 我希望它们以大约每500毫秒一次的恒定速率运行。

poi错误的日期公式值计算

我有以下代码 public boolean processCell(boolean hasData, StringBuffer rowData, Cell cell) { switch (cell.getCellType()) { case Cell.CELL_TYPE_FORMULA: { try { this.evaluator.clearAllCachedResultValues(); switch (this.evaluator.evaluateFormulaCell(cell)) { case XSSFCell.CELL_TYPE_NUMERIC: { if (DateUtil.isCellDateFormatted(cell)) { logger.warn(cell.getCellFormula()); rowData.append(dateFormat.format(cell.getDateCellValue())); hasData = true; } else { rowData.append(numberFormat.format(cell.getNumericCellValue())); hasData = true; } break; } case XSSFCell.CELL_TYPE_STRING: { String stringVal = cell.getStringCellValue().trim().replaceAll(“\n”, “”); if (stringVal.trim().equalsIgnoreCase(“Total MoU/active customer”)) […]

如何在JSF中使用带有UIData的java.util.Set。 特别是h:数据表?

我知道UIData不支持这个,我理解为什么,但这对于使用JPA和JSF的人来说应该是一个常见问题,因为在映射M2M O2M关系时,Sets是优秀的集合。 我知道我需要创建一些结构,以便在需要时将我的属性转换为列表,但在广泛搜索这个问题后,我能找到的原因是它不起作用的原因,并且只是解决方案的轻微提示。 我相信答案是创建一个ELResolver来处理这个问题,但是它们的结构以及它们的工作方式令我感到困惑,我不明白为什么我需要成为一个写这个的人,这是一个常见的问题,当然有人有写了一个ELResolver来做这个? 我已经找到了关于这个主题的这篇文章,但我无法复制它,因为较新的JSF似乎不允许它: http://techblog.bozho.net/?p=28&cpage=1#comment-13700 和这个: http://www.jroller.com/mert/entry/settolistpropresolver_for_jsf_el 其中充斥着已弃用的代码,因为它是ELResolver之前的代码。 但我无法找到如何实现ELResolver来做到这一点。 有人能指出一些有用的代码或至少类似的东西可以帮助我理解如何使用ELResolver吗?