free geek twin cities…

May 4, 2010 on 11:25 am | In Technical stuff | No Comments

http://freegeektwincities.org/

http://freegeektwincities.org/ is a great idea. I’ve always had a hard time simply throwing away major computer components. It just seems wrong. Dell, at least for a short while, stopped offering recycling of old laptops. Now, with a group like FGTC, this problem is solved. Kudos…

more window 7 upgrades…

April 18, 2010 on 1:51 pm | In Technical stuff | No Comments

This how Wordpad looks now… and it has more functionality.

Wordpad now…

This how Paint looks now… and it has more functionality.

Paintnow…

If you’re wondering why I care, I’ve used this two small programs for years, and I was about to make the move to UltraEdit. Not sure who Microsoft hired in the past few years, but wow… wow.

dell studio xps 16…

April 15, 2010 on 5:03 pm | In Technical stuff | No Comments

Got a new machine, my old one was starting to burn out - as usual.

Hands down, Windows 7 Professional is light years a head of Vista Professional. Wow. The UI’s better, without needing more RAM. The security implementation has been tweaked slightly - I’m not fighting with soft link over regular shortcuts… Also, the environment emulation helps a ton. They’ve taken the theme to a new level - background changing every few moments… nice.

I’m sure it doesn’t hurt that my new machine is also a step-up. The Dell Studio XPS 16 is pretty remarkable. Aside from the i7, with 6MB cache, being pretty powerful on its own. Dell, with this line, has gotten a complete makeover. Small things like the soft lighting under the keyboard and touch-surfaces. That’s right, I said touch-surfaces - no more eject button for your optical drive. An optical drive that reads Blue-Ray, and writes DVDs. Certain lights that used to be on the far rear, right, are now to the front of the machine, and on the left.

I don’t have time to go over each little thing, but I can say that someone clearly put money into some real HCI research. I wont say this is a Mac, or anything crazy like that. I will say that if Dell stays on this path, I cant see why I wouldn’t keep coming back to them for my computing needs.

hibernate spring secuirty implementation…

July 13, 2009 on 10:45 pm | In Security | 7 Comments

Almost two years ago, I said I would upgrade my my Hibernate-Acegi (Spring Secuirty) implementation to Spring Security’s new(er) ACL service paradigm. Here’s their suggested schema. Below is a class diagram of that paradigm.

Spring Secuirty ACL Paradigm

Back then, none of projects required groups or users to inheriting permissions. I simply gave permissions to the roles and individuals that needed them. So, I used an AffirmativeBased AccessDecisionManager, and placed a RoleVoter before any other AbstractAclVoter. Simple, and it worked. One of my newer projects, however, does require the inheriting permissions.

What else…

Since I always use GUIDs, I still don’t need Spring Security to know the the domain class. But I’d like to utilize the new auditing feature. I’d also like to turn on and off auditing at the permission entry level. All in all, the upgrade wasn’t too bad at all. I had move some code from the SimpleAclEntry (deprecated) to the BasePermission. I actually extended the BasePermission, as the javadocs suggest.

Spring-Security’s distributed example code uses JDBC. Which is fairly straight-forward. It keeps a good amount of the information on the acl entry table. Thus no real need for a parent acl table. Well, since I’m using Hibernate, a few things automatically change:

  • Built-in 2nd level caching (ehache for me)
  • Ability to define granular joins and fetches based on the context

Based on those two (three?) items, I was able to normalize a good amount of information back to a new parent table permission (acl?). Now permission entries can focus on one purpose, facilitating a relationship between their parent permission and the target SID (Secure ID). See my pared-down ERD for this:


Hibernate Permission ERD

I’m not big on defining AOP behavior via the newer namespaced expressions. So, in that context, I stayed with what I had before. Some other things have been deprecated, such as BasicAclEntryAfterInvocationProvider, in favor of AclEntryAfterInvocationProvider. Overall, it was pretty painless.

One more thing…

When it comes to ACLs, the was one thing that drives me crazy is having to define the default relationships in SQL scripts. I freaking hate it. Well, I was able to resolve that this time around: Added a task and some delegation to my existing ServletContextListener. At application start, it goes about finding existing objects that need securing, that aren’t already secured. Yeah, that’s great…

early adopter…

March 28, 2009 on 4:18 pm | In Technical stuff | No Comments

Since I’ve been introduced to WebWork, I was a serious proponent. It was built on some interesting technologies. Implemented some great concepts. Things that are now considered standard for any self-respecting web-mvc framework. After some evolution, WebWorkis now Struts2. Since I considered myself a proponent, I’ve followed most releases. Especially the security-related items.

Recently I decided to leave the 2.0.x series, and upgrade to the 2.1.x path. After a little work, you can piece together the major changes you need to adhere. For me, the biggest change was the built-in Dojo support. As of 2.1, it’s an optional, external module, which is fine. I went about making the changes. Things like changing my theme from Ajax to XHtml. Importing the Dojo taglibs into the necessary pages. Nothing too complicated. More time-consuming than anything.

OK, so I ran into a problem. I worked at it for a good weekend. After banging my head against this one, with no resolution, I sought help on the user-list. No response. None of this really bothered me. What really bothered me was my naiveté.

The affected projects are all on svn. For some reason, I did the upgrade on HEAD. So, after no resolution, I had to revert. Since the upgrade included some other libs (Hibernate-3.3, some Commons modules, etc), I actually had to revert and then reapply some other upgrades.

Regardless of your personal feelings for a framework/library, don’t ever assume it’s going to be that easy! If you have a source control tool, use it. A branch for these upgrades would have made things a bit easier. I used to think branches were for teams larger than 2-3. Yeah, not so much. It’s not a problem to adopt a release/technology early, it’s all in how you do it. Ugh, lesson learned.

« Previous PageNext Page »

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^