Tag: security

Spring Security自定义UserDetailsS​​ervice和自定义User类

我试图在de user主对象中保存其他数据。 我做的是: 实现我的现有用户类的“UserDetails”接口,其中保存了我的附加数据(如电子邮件地址等)。 @Entity public class User implements UserDetails { 然后我创建了一个UserDetailsS​​ervice实现: @Service public class UserDetailsServiceImpl implements UserDetailsService { @Autowired UserDAO userDAO; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userDAO.findOneByUsername(username); if (user == null) throw new UsernameNotFoundException(“username ” + username + ” not found”); System.out.println(“———————> FOUND ————->” + user.getEmail()); return user; […]

java.lang.NoClassDefFoundError:org / springframework / context / EnvironmentAware

我正在使用spring mvc创建一个Web应用程序。 我已经开始合并Spring Security库。 我现在在tomcat日志中遇到以下错误,当我尝试使用eclipse将其部署到tomcat时。 我在我的库中使用以下jar版本 spring framework 3.1.1.RELEASE spring框架安全版本3.1.0.RELEASE 我也使用STS版本的eclipse,maven和vmware vfabric tc Server(捆绑了sts)。 这是tomcat日志 SEVERE: Exception starting filter springSecurityFilterChain java.lang.NoClassDefFoundError: org/springframework/context/EnvironmentAware at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at […]

安全性:限制第三方软件的内部访问

我有一个Java应用程序,用户可以在其中加载第三方“插件”以增强用户体验。 存在供这些插件使用的API,但出于安全考虑,应限制第三方软件访问内部应用程序类。 插件的受限制包将是“com.example”,而允许的是“com.example.api”。 API类确实调用内部的混淆类。 在研究了这个之后,我遇到了几种SecurityManager方法: checkMemberAccess(Class,int)和checkPackageAccess (String) ,它们似乎都是我可行的目标。 但是,经过一些测试和进一步研究后,我发现checkMemberAccess仅适用于reflection调用,而checkPackageAccess仅在类加载器调用loadClass时调用。 限制对包的访问的合理方法是什么(com.example,而不是com.example.api)?

如何在spring security authenticated登录中获取用户输入的用户名和密码值

我在我的应用程序中使用Spring MVC,登录通过spring security进行身份validation。 我在UserServiceImpl.java类中有以下两种方法,public UserDetails loadUserByUsername(String userName)抛出UsernameNotFoundException,DataAccessException { ApplicationTO applicationTO = null; try { applicationTO = applicationService.getApplicationTO(adminDomainName); } catch (ApplicationPropertyException e) { // TODO Auto-generated catch block e.printStackTrace(); } UserTO userTO = getUserTO(applicationTO.getApplicationId(), userName); if (userTO == null) { throw new UsernameNotFoundException(“user not found”); } httpSession.setAttribute(“userTO”, userTO); return buildUserFromUserEntity(userTO); } User buildUserFromUserEntity(UserTO userTO) { String […]

比较java中的PublicKey对象

我有两个PublicKey对象。我想比较两者的相等性或使用java安全API或弹性城堡API检查哪个是最新的对象。我怎么能实现这个目的?

SSL Java java.io.IOException:无效的密钥库格式

我在java中使用SSLServerSocket和java.ssl包中的其他类测试SSL。 当我运行以下代码时,我得到exceptionjava.io.IOException:无效的密钥库格式。 我的代码: package testing; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.security.KeyStore; import javax.net.ServerSocketFactory; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLServerSocket; import javax.net.ssl.TrustManager; public class SSLServerTest { public static void main(String[] args) { try { int port = 3000; SSLContext sc = SSLContext.getInstance(“TLSv1.2”); KeyStore ks = KeyStore.getInstance(“JKS”); InputStream ksIs […]

为网站添加额外的安全性

我正在运行基于Java Spring MVC的Web应用程序。 它也基于Hybris平台。 现在,已经实现了身份validation和授权方面的基本function。 这意味着我们有会话filter,工作用户系统等。 但是,我们目前还没有针对诸如XSS和其他类型的可能攻击等内容的安全措施。 XSS可能是最大的担忧,因为它是最常见的攻击方式。 现在,我想知道……采取哪些步骤是明智的? 我看了一下,我已经看到像XSS-Filter这样的东西存在。 实现这样的操作非常简单,只需复制经过源代码并将其添加为tomcats web.xml。 但我想知道这样的filter是否具有令人满意的安全性? 还有更臃肿的解决方案,例如我可以使用spring-security。 然而,阅读文档,我觉得这是非常臃肿,其中很大一部分实现了已经实现的(例如,两个A)。 我觉得将它配置为我需要它完成的工作量需要花费很多工作。 我错了吗? 和: 你怎么说它建议处理安全问题,例如XSS? 您是否使用某种适合需求的预定义框架,或者通过遵循备忘单等内容来“手工制作”您的安全性?

使用xmldsig签名的JAXB编组

是否可以创建jaxb marshaller,它自动将数字签名添加到xml内容中。 例如,如果我有一个定义的类: @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class Test { @XmlElement private String info; public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } } 而我的由marshaller生成的xml看起来像: value 我希望它看起来像: 4432kZ6c2JPwP3A= Mvbd4603knhh2LZTyE1MIiEF7N46b7GoTzxsqs5eyIXYNG96MFPIMo+P6okzIPzRKrL2obpf3V4D/F0gw5vM/UJwb2MvrCo/5JM5qvV0f09dzWLrgkPyShiQnFL2vzECwmMOrCA= MIIEnjCCBAegAwIBAgIDJQDMA0GCSqGSICBMGSETU0VOMRgwFgYDVQQHEw82NTAwOCBXaWVzYmFkZW4xGjAYBgNVBkESE9MRElORyBBRzEiMCAGA1UEAxMZSW50ZXJuZXQgQmVudXR6ZXIgU2VydmljZTEqMCgGCSqGSIb3DQEJARbeVydmaWthdEBzY2h1ZmEtb25saW5lLmRlMB4XDTA5MDcyNzEwNTkyNVoXDTEwMDcyNzEwNTkyNVowgZsxCzAJdNVBATAkFMQLmRlMCYGfUdEgQfMB2BG3plcnRpZmlrYXRAc2NodWZhLW9ubGluZS5kZTAfsgkqhkiG9w0BAQQFAAOBgQB7DBly8bqksxrkwcmN2A/xfu3lm0IfGD6PoJ7JFgPq4aHBDWgdUW3EzvRE+cuFGjkoBvATKfcbF7ReTz+4C+dLJShYiN/HxUnxgiO7R2y4c/I4pNnmlfQT261/dNlQ8Wm8pyUeMcr32fxvtoY4dqlQy7GePmrHpR3HE/dMRAd6gA== 1EN/UxtM2fLYxxDmSxgjSd10AzCxvZtNGAER9j3+OMqZjBXG9uLiZR+GbtOXbsDz3fyiwEfu/FDeeGGESppYAL5foQ72t2ztV5w2GLtTH0K+wrlImmvoTdl6bsdC7RXAsXVxtlkoG0xL7HGwZLvM= AQAB value 我希望marshaller有办法做到这一点? 如果没有,也许还有其他简单的方法来签署一个xml? 提前致谢

使用Objective-C加密数据并使用Java Problem解密

我有一个iPhone解决方案,它使用XML在客户端(移动)和服务器(Java)之间传输数据。 由于传输的信息类型,必须加密消息的某些部分(XML)。 我计划使用AES 128来加密和解密这两个端点之间的数据。 首先使用Object-C的CommonCrypto框架加密敏感数据,然后在Java Server(Servlet)内解密数据。 我是安全协议和标准的新手,基本上我的代码是我可以在Apple的开发论坛/资源和互联网(Google)上收集的一组信息的子集:-) 基本流程是: 使用AES(使用预设密钥)对数据进行加密。 加密的字节放在XML中(使用base64) 数据从XML收集,并使用相同的预设密钥解密; Object-C代码的加密部分是: char keyPtr [ kCCKeySizeAES128 +1 ]; bzero( keyPtr, sizeof(keyPtr) ); // The secret key is masked for obvious reason, but you can use “12345678912345678912345678912345” [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding]; NSUInteger dataLength = [data length]; // Initialization vector; dummy in this case 0’s. uint8_t iv[ […]

如何使用Spring Security Java配置将HTTP请求重定向到HTTPS?

我有一个Spring Security版本3.2.3应用程序,它可以监听HTTP和HTTPS。 我希望将对HTTP端口的任何请求重定向到HTTPS。 如何仅使用Java配置? 用于HttpSecurity Spring Security javadoc提出了以下解决方案(修剪为必需的): public class WebSecurityConfig extends WebSecurityConfigurerAdapter { protected void configure(HttpSecurity http) { http.channelSecurity().anyRequest().requiresSecure(); } } 但是这不起作用,因为HttpSecurity没有方法channelSecurity() 。