OAuth2 – 在Spring Security中处理密码更改

我在Spring安全模块的帮助下为我的REST服务(密码授权类型)实现了OAuth2。 我’使用postgreSQL作为我的令牌存储。 一切正常,但我需要添加更改用户密码的可能性。 如果用户更改了密码,则应删除/忘记旧令牌。 我使用JdbcTokenStore Spring服务实现此function: public void updatePassword(User user, String newPassword) { … // Update password in database clearUserTokens(user.getUsername()); } private void clearUserTokens(String userName) { Collection tokens = jdbcTokenStore.findTokensByUserName(userName); tokens.stream().forEach(jdbcTokenStore::removeAccessToken); } 这种方法是否正确? 处理这种情况有什么标准方法吗?

无法使用File delete()方法删除git repo中的.pack文件

对于我写的这个方法,我正在使用jgit库克隆一个git repo,然后用这些文件做一些事情,最后我想删除repo。 我遇到的问题是当我在.pack文件(位于.git \ objects \ pack)上调用delete()方法时,它无法删除。 但是可以删除所有其他文件。 为什么会这样?

在android中选择文件后找不到文件错误

我想在我的android app.now中打开一个.pdf文件我可以浏览pdf文件,浏览文件后,当我检查文件是否存在时,我收到文件未找到错误。 现在选择文件后,我选择的文件Uri data.getData()就像 content://com.android.externalstorage.documents/document/6333-6131:SHIDHIN.pdf 和我使用data.getData().getPath().toString()解析的路径data.getData().getPath().toString()就像 /document/6333-6131:SHIDHIN.pdf这是我的代码。 请帮我。 // To Browse the file Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(“application/pdf”); startActivityForResult(intent, PICK_FILE_REQUEST); 选择文件后 //onActivityResult public void onActivityResult(final int requestCode, int resultCode, Intent data) { try { switch (requestCode) { case PICK_FILE_REQUEST: if (resultCode == RESULT_OK) { try { Uri fileUri = data.getData(); String path = fileUri.getPath().toString(); […]

Java:组合generics,内部类和“实现”的问题

我遇到了generics, implements和内部类的问题。 我正在创建一个包含内部类的LinkedBinaryHeap类。 这个内部类是通用的HeapNode ,它扩展了我创建的通用Node类; 它只是为键/优先级添加变量和方法。 在LinkedBinaryHeap我创建了一个通用的LinkedList来存储HeapNode 。 我假设存储的通用数据扩展了Comparable类。 这是什么存储什么的布局: BinaryHeap->LinkedList(Nodes)->HeapNode(extends Node)->DATA,KEY 我的问题是在声明LinkedList : LinkedList heap; eclipse强调HeapNode并给我错误: 绑定不匹配:LinkedBinaryHeap.HeapNode类型不是 有效替代有界参数> LinkedList类型 我认为错误告诉我HeapNode必须实现Comparable ,但是我的Node类实现了Comparable ,所以这是照顾的,对吗? 我尝试了各种不同的东西,但似乎没有任何效果,下面的代码是我最接近的。 请注意,我已经尝试将implements Comparable Node从HeapNode内部类中HeapNode ,并且它什么都没有改变。 码: LinkedBinaryHeap.java: public class LinkedBinaryHeap<E extends Comparable> { private LinkedList heap; public LinkedBinaryHeap(){ heap = new LinkedList(); } /* INNER CLASS DECLARATION. */ private class HeapNode extends […]

JAVA中的SQL Server查询通知

我已经在网上搜索了一段时间,但到目前为止没有运气。 是否可以在JAVA中实现这一点http://www.codeproject.com/Articles/144344/Query-Notification-using-SqlDependency-and-SqlCach ? 是否支持JDBC for SQL Server 2012? 提前致谢!

如何从返回值的函数中返回任何内容?

我有一个二叉搜索树,我想删除一个节点。 我需要得到它的父,所以我写了一个函数: private BSTreeNode getParent(BSTreeNode root, BSTreeNode node) { if(root == null) return null; if(node.element().lessThan(root.element())) { if(root.getLeft() != null && root.getLeft().element().equal(node.element())) return root; else getParent(root.getLeft(), node); } else { if(root.getRight() != null && root.getRight().element().equal(node.element())) return root; else getParent(root.getRight(), node); } } 与C / C ++不同,Java给出了以下错误: This method must return a result of type BSTreeNode 它强制我在函数的最后一行返回一个值。 […]

有没有更好的方法来获取java中的当前类变量?

现在我正在做这样的事情: private static Logger logger = LoggerFactory .getLogger(MasterController.class); 有没有比使用类名称(MasterController)更好的方法? 也许通用的东西?

应用程序在eclipse中运行得更快

我在eclipse中有一个可运行的java SE应用程序。 我引导JPA在普通的java 6 SE环境中工作。 对数据库中不同表的每个请求都不会超过100毫秒。 问题是,当我导出runnable jar并且我说java -jar myapp.jar时,对数据库的每个请求大约需要9秒。 我不明白为什么当我从eclipse运行它时应用程序更快

Hibernate本机查询:无效的列名错误SQL-17006

package com.abc.def.model; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.Entity; import javax.persistence.Embeddable; import javax.persistence.IdClass; import java.util.Date; import java.io.Serializable; @NamedNativeQuery(name=”getMetadata”,query=” select a.name alias1,a.fullname alias2, b.name alias3,b.age alias4, c.height alias5,c.something alias6, d.otherthing alias7 from lame_table_name a, lame_table_name_2 b where a.id = b.id and b.id = c.id and c.id = d.id and d.id = :namedparameter order by a.index,b.index “, resultClass=MetadataModel.class) […]

快速而又脏的SQL字符串转义

我正在为一个带有postgresql DB的Web应用程序的家庭滚动QueryBuilder类进行最后润色。 它将PreparedStatement用于所有查询,并受到SQL注入的保护。 但是,我想要一种“快速和脏”的方式来表示QueryBuilder及其toString()方法,仅用于调试目的。 该方法将组装查询字符串,通常传递给PreparedStatement ,然后简单地替换每个? 在字符串中具有相应的单引号值。 toString() javadoc将警告其他开发人员,这是一个不安全的近似,仅用于调试等。 我知道这些值应该是他们的单引号加倍(即O’Connell逃到O”Connell )。 是否还有其他应该处理的特殊字符我忘记了? 我寻找类似的问题,但只发现人们被骂使用PreparedStatement (他们应该,让记录显示)。 编辑:不打算使用第三方工具完成这个特定的任务,我真的只想在这里快速而肮脏。 我确实欣赏这些链接 – 我可能会将它们视为其他用途。 最后编辑:感谢所有有用的指示。 我只想补充一点,对于那些从谷歌这里绊倒的人来说,不要将这些技巧用于击中数据库的任何内容,请使用PreparedStatement 。