小编Ash*_*yan的帖子

如何在自定义筛选器中使用Java配置注入AuthenticationManager

我正在使用Spring Security 3.2和Spring 4.0.1

我正在努力将xml配置转换为Java配置.当我在我的过滤器中注释AuthenticationManager@Autowired,我得到一个例外

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.authentication.AuthenticationManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过注射AuthenticationManagerFactoryBean但是也失败了类似的例外.

这是我正在使用的XML配置

<?xml version="1.0" encoding="UTF-8"?> <beans ...>
    <security:authentication-manager id="authenticationManager">
        <security:authentication-provider user-service-ref="userDao">
            <security:password-encoder ref="passwordEncoder"/>
        </security:authentication-provider>
    </security:authentication-manager>

    <security:http
            realm="Protected API"
            use-expressions="true"
            auto-config="false"
            create-session="stateless"
            entry-point-ref="unauthorizedEntryPoint"
            authentication-manager-ref="authenticationManager">
        <security:access-denied-handler ref="accessDeniedHandler"/>
        <security:custom-filter ref="tokenAuthenticationProcessingFilter" position="FORM_LOGIN_FILTER"/>
        <security:custom-filter ref="tokenFilter" position="REMEMBER_ME_FILTER"/>
        <security:intercept-url method="GET" pattern="/rest/news/**" access="hasRole('user')"/>
        <security:intercept-url method="PUT" pattern="/rest/news/**" access="hasRole('admin')"/>
        <security:intercept-url method="POST" …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-java-config

74
推荐指数
1
解决办法
9万
查看次数

冬眠-公地注解-4.0.1.Final.jar; LOC标题无效(签名错误)?

我是Maven的新手.我正在尝试为springMVC + Hiberante创建maven项目但是我遇到了很多错误..任何人都可以解决我的问题请查看我的pom.xml以下

<?xml version="1.0" encoding="UTF-8"?><project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>Spring3HibernateMaven</groupId>
    <artifactId>Spring3HibernateMaven</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <description></description>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>

                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>

            <!--  <plugin>
               <artifactId>maven-war-plugin</artifactId>
               <version>2.0</version>

             </plugin> -->
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.1.9.Final</version>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.10</version> …
Run Code Online (Sandbox Code Playgroud)

java hibernate maven

44
推荐指数
4
解决办法
7万
查看次数

如何使用Spring Social进行休息认证?

我已经实现了Spring社交+ Spring安全性,如Spring安全性示例(以及spring security java config)中所述.我当时报告了几个问题(请参阅https://jira.springsource.org/browse/SEC-2204)所有这些问题都已解决,我的安全性正常.

但是,我想更改我的安全实现并使用RESTful身份验证.Spring oauth/oauth2(http://projects.spring.io/spring-security-oauth/)解决了这个问题,但我看不出Spring Social如何适应这张图片?虽然幕后春天与Facebook/Twitter的社交谈话与oauth,我不认为Spring Social的注册形式和其他特征是为了一个宁静的api而建立的.

任何例子或想法肯定会有所帮助.谢谢.

这篇文章的最新消息:(4/6/2014)

  • 我已经建立了一个消耗我的API的(php)网站.
  • 这个php网站(让我们称之为客户端网站),使用Facebook php sdk注册它自己的用户.这是一种收集自己成员的完全独立的方式.
  • 但是,一旦用户注册了客户端站点,就会传递用户名,电子邮件,密码,名字,姓氏数据及其client_id和客户端密钥,并使用OAuth2授权类型client_credentials身份验证.
  • 传入的用户数据在主系统上创建用户记录!(主要申请)
  • 在此之后,每次客户端站点通过OAuth2授权类型密码调用主系统并发送client_id,client_secret,用户名和密码,获取"身份验证令牌"并能够使用此令牌与主站点通信.

似乎还有很长的路要走,但解决了在主系统上保留用户记录的问题.我很好奇是否有其他方法可以做到这一点?请指教.谢谢

spring spring-security spring-social spring-security-oauth2

23
推荐指数
1
解决办法
5522
查看次数

在运行时获取jar版本

我想知道是否有可能在运行时检索该类来自的jar的版本号?

我知道有可能找到该类来自的jar:

MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
Run Code Online (Sandbox Code Playgroud)

但是版本怎么样?

(假设它不在文件名:))

java reflection jar

14
推荐指数
3
解决办法
2万
查看次数

Hibernate 4多租户和Spring 3 Hibernate

所有

我正在评估Hibernate 4(4.1.0)和Spring 3(3.1.0)中出现的Multi-Tenancy功能,但是无法使用HibernateTransaction设置.我已经定义了如下设置.

LocalSessionFactoryBean:

@org.springframework.context.annotation.Configuration
public class Configuration {

    @Inject private DataSource dataSource;
    @Inject private MultiTenantConnectionProvider multiTenantConnectionProvider;

    @Bean
    public LocalSessionFactoryBean sessionFactory() throws IOException{
        LocalSessionFactoryBean bean = new LocalSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setPackagesToScan("com");
        bean.getHibernateProperties().put("hibernate.multi_tenant_connection_provider", multiTenantConnectionProvider);
        bean.getHibernateProperties().put("hibernate.multiTenancy", "SCHEMA");
        bean.getHibernateProperties().put("hibernate.tenant_identifier_resolver", new CurrentTenantIdentifierResolverImpl());
        bean.setConfigLocation(new ClassPathResource("/hibernate.cfg.xml"));
        return bean;
    }

}
Run Code Online (Sandbox Code Playgroud)

Configuration.xml:

<context:component-scan base-package="com.green" />


    <context:annotation-config />

    <!-- Enable annotation style of managing transactions -->
    <tx:annotation-driven transaction-manager="transactionManager" />

    <!-- Declare a datasource that has pooling capabilities -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close" p:driverClass="${app.jdbc.driverClassName}"
        p:jdbcUrl="${app.jdbc.url}" p:user="${app.jdbc.username}" p:password="${app.jdbc.password}"
        p:acquireIncrement="5" p:idleConnectionTestPeriod="60" …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

11
推荐指数
1
解决办法
8504
查看次数

Spring MVC"复制"了URL的一部分

@Controller在一个spring-mvc环境中很简单.这是控制器:

@Controller
public class MessageController {
    private static Logger LOG = LoggerFactory
            .getLogger(MessageController.class);

    @RequestMapping(value = "/messages/{userId}/{messageId}", method = RequestMethod.GET)
    public Message getMessage(@PathVariable("userId") String uid,
            @PathVariable("messageId") String msgid) {
        LOG.trace("GET /message/{}/{}", uid, msgid);
        return new Message();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是servlet-mapping web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
             http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

    <display-name>Messaging Service</display-name>

    <servlet>
        <servlet-name>messaging</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>messaging</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>
Run Code Online (Sandbox Code Playgroud)

当我通过jetty启动应用程序并运行请求时/messages/abc/def,我得到以下日志:

INFO: Mapped "{[/messages/{userId}/{messageId}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public ....Message ....MessageController.getMessage(java.lang.String,java.lang.String)
WARNING: No mapping found for HTTP request with URI …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

10
推荐指数
1
解决办法
2509
查看次数

与@requestbody的Spring mvc错误请求

我有一个带有该签名的Spring MVC服务:

@RequestMapping(method = RequestMethod.POST, value = "/addUser", consumes = "application/json")
    public @ResponseBody User addUser(@RequestBody User user) {
Run Code Online (Sandbox Code Playgroud)

这在context.xml中

<bean id="jacksonMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jacksonMessageConverter" />
            </list>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

我发一个Post请求,总是给我一个400error-> Bad请求.我写了一个过滤器来读取请求内容,这是:

编辑json:

{
    "email": "Anchor",
    "latitude": 40.3139461,
    "longitude": -3.8810229,
    "name": "a",
    "online": true,
    "password": "a",
    "deviceRegId": "APA91bGnD1EuqEm9cpoHsenC-HEphQJRniEnhPovK24QkKkLBXrDesSCP6CFlyOKwR1huwSI28Wd-DdN0N8MDKle7myYB7Dznzc3Z11ZOv3jMlJEIegykpnnnYScrElw2czQEa4pKFeQW7BklUsUS-IB15LMqH_Ag"
}
Run Code Online (Sandbox Code Playgroud)

编辑:用户类

public class User implements Serializable{


@JsonProperty("deviceRegId")
private java.lang.String deviceRegistrationID;
@JsonProperty("email")
private java.lang.String email;
@JsonProperty("latitude")
private java.lang.Double latitude;
@JsonProperty("longitude")
private java.lang.Double longitude;
@JsonProperty("name")
private java.lang.String name;
@JsonProperty("online")
private …
Run Code Online (Sandbox Code Playgroud)

spring json spring-mvc jackson

9
推荐指数
1
解决办法
2万
查看次数

左边连接spring数据jpa和querydsl

我正在使用spring数据jpa和querydsl并且被困在如何编写简单的好查询到左连接两个表.假设我有一个Project实体和一个在Project中定义了OneToMany关系的Task实体,我想做的事情如下:

select * from project p left join task t on p.id = t.project_id where p.id = searchTerm
select * from project p left join task t on p.id = t.project_id where t.taskname = searchTerm
Run Code Online (Sandbox Code Playgroud)

在JPQL,它应该是:

select distinct p from Project p left join p.tasks t where t.projectID = searthTerm
select distinct p from Project p left join p.tasks t where t.taskName = searthTerm
Run Code Online (Sandbox Code Playgroud)

我有一个ProjectRepository接口,它扩展了JpaRepository和QueryDslPredicateExecutor.这让我可以访问方法:

Page<T> findAll(com.mysema.query.types.Predicate predicate, Pageable pageable) 
Run Code Online (Sandbox Code Playgroud)

我知道,左连接可以通过创建一个新的JPAQuery(EntityManager的)可以轻松实现.但我没有实体管理器与弹簧数据的JPA明确注入.有没有建立一个谓词左加入很好的和简单的方法?希望有人在这里经历了这一点,并能够给我一个例子.谢谢.

弗雷.

java spring jpa join querydsl

9
推荐指数
1
解决办法
7955
查看次数

AWS S3 - 列出没有前缀的文件夹中的所有对象

我在检索AWS S3中文件夹内的所有对象(文件名)时遇到问题.这是我的代码:

ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
            .withBucketName(bucket)
            .withPrefix(folderName + "/")
            .withMarker(folderName + "/")

    ObjectListing objectListing = amazonWebService.s3.listObjects(listObjectsRequest)

    for (S3ObjectSummary summary : objectListing.getObjectSummaries()) {
        print summary.getKey()
    }
Run Code Online (Sandbox Code Playgroud)

它返回正确的对象但是带有前缀,例如foldename/filename

我知道我可以使用java或substring来排除前缀,但我只想知道AWS SDK中是否有方法.

java amazon-s3 amazon-web-services

9
推荐指数
2
解决办法
1万
查看次数

JPanel不使用setSize和setPrefferedSize

请解释为什么它不起作用,也可以发布解决方案来解决这个问题.非常感谢你提前.

public class Run extends JFrame{

    /** Fields **/
    static JPanel jpanel;
    private int x, y;

    /** Constructor **/
    public Run() {
        /** Create & Initialise Things **/
        jpanel = new JPanel();
        x = 400; y = 400;

        /** JPanel Properties **/
        jpanel.setBackground(Color.red);
        jpanel.setPreferredSize(new Dimension(20, 30));


        /** Add things to JFrame and JPanel **/
        add(jpanel);

        /** JFrame Properties **/
        setTitle("Snake Game");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setCursor(null);
        setResizable(false);
        setSize(new Dimension(x,y));
        setLocationRelativeTo(null);
        setVisible(true);
    }

    /** Set the Cursor **/
    public void setCursor() {
        setCursor (Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel

8
推荐指数
2
解决办法
1万
查看次数