I just released the first public version of Spring Security Acl with Mongodb as the data store at https://bitbucket.org/tinhtruong/spring-security-acl-mongodb. Inspired from Spring implementation based on JDBC, I leverage the power of the Spring Data Mongodb to implement the retrieve strategy for ACL stuff. The implementation is based on Spring Security 3.1.0.RELEASE (the latest version at this time).

It is released under Apache 2.0 license, so you can use it in your commercial projects.

I use Gradle as the build system. So if you want to build from the source, make sure you have an up-and-running Gradle 1.0. To create a jar:

gradle jar

Feedback are welcome!

5 comments:

Anonymous on August 1, 2012 at 10:31 AM

I am going to have a look see at this tomorrow, appreciate the work, I hope it saves me a lot of tedium in coding my own version. I am adding this to something I hope to have open source soon.

I appreciate the work.

Anonymous on October 23, 2012 at 9:42 PM

I'm missing something or you forgot to put the source code for QAclClass ?!

Trương Xuân Tính on October 24, 2012 at 5:05 PM

QAclClass is generated at compile time so I don't commit generated source code into my repo.

tino tornabene on September 6, 2013 at 2:22 PM

Hello, sorry for my english. I tried to integrate the spring security acl from you implemented, but with 1,000 records the system goes into crach and also does block the instance of mongod. I think the problem is a booleanexpression with too many or. You noticed the problem. Hello

tino tornabene on September 6, 2013 at 2:32 PM

Hello, sorry for my english. I tried to integrate the spring security acl from you implemented, but with 1,000 records the system goes into crach and also does block the instance of mongod. I think the problem is a booleanexpression with too many or. You noticed the problem. Hello


stack trace
com.mongodb.MongoException$Network: Read operation to server /127.0.0.1:27017 failed on database box
at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
at com.mongodb.DB.command(DB.java:261)
at com.mongodb.DB.command(DB.java:243)
at com.mongodb.DBCollection.getCount(DBCollection.java:985)
at com.mongodb.DBCursor.size(DBCursor.java:602)
at com.mysema.query.mongodb.MongodbQuery.list(MongodbQuery.java:268)
at org.springframework.data.mongodb.repository.support.QueryDslMongoRepository.findAll(QueryDslMongoRepository.java:102)
at org.springframework.data.mongodb.repository.support.QueryDslMongoRepository.findAll(QueryDslMongoRepository.java:47)

Post a Comment