Adams Bros Blog

7Feb/101

JAX-RS and RESTful Security

Author: Trenton

The use of HTTP, as the driving force of SOA can never be exemplified enough.  In terms of the usefulness of SOA, I think that RESTful SOA is a no brainer, has some great uses, and I've always been confused at why people adopted SOAP nothingness. Or, should I say, SOAP wrappers that achieve nothing.  RESTfulness, on it's basic level, having no required integrated security, is great for

  1. public information
  2. lookups of information that should be readily available for many systems, but does not contain user's private information (without a proper authentication/authorization model in place), etc
  3. systems not requiring proper/secure authentication and authorization

From a private personal data and security perspective (not that I'm an expert on security, by any means), the RESTful method of SOA really doesn't define much in the way of security.  After all, any authentication method, unless it's directly or indirectly tied to the front end user's credentials, and also propagating those credentials to the back end REST service, with stateful authentication, is not adequate security.  Having a certificate for example, is great to prevent sniffers, but not hackers that have compromised a client web server system.

7Feb/100

What is JAXB and JAXB Example Code

Author: Trenton

I thought it may be nice for those googlers that want to know about JAXB, to have a quick working example to use.  So, that is the purpose of this post.

31Jan/100

ZK AJAX Status Bar

Author: Trenton

Seeing that my research project is a mini accounting system, I thought it necessary to be able to display items in a status bar, like a real application.  It is very slightly unfortunate that ZK doesn't have something integrated right in for this purpose.  But, given the versatility of ZK, it's easy enough to resolve.

30Jan/100

ZK Exception Handling and Error Popup

Author: Trenton

Once I had some basic functionality in my mini accounting system that I'm writing (for research purposes), one of my goals was to have an adequate error display for the user, that was the same every time.  Suffice it to say, I was completely thrilled to find out that ZK could do exactly what I wanted to do, and I didn't have to write an once of code.  All I did was write some ZUL, which wrapped a JSP inside of a ZK window.  I share how I did that in this post.

30Jan/100

ZK AJAX Framework Introduction

Author: Trenton

I am in the process of working with and researching ZK as an AJAX framework to integrate into Java Web Development that I do.  So far, AJAX looks really amazing, and is fully integrated into the J2EE framework.  It is an event driven framework that has the option of hooking directly into existing JSP, or entirely writing ZK event handlers to do the processing.  There is no wonder that ZK won the Project of the Month Source Forge award.

25Jan/100

RMI Pitfalls and Problems

Author: Trenton

In this post, I plan on laying out multiple common problems with RMI, that a developer can run into.  I hope that this will be a concise guide to fixing the common RMI problems that beginners run into.  As I come up with more, I will edit this post, rather than creating a new one.  I will then post a comment on this entry; if you are subscribed to the comments (RSS feed), you will get notification when there is an update.

Also, if you are having some sort of RMI trouble, post a comment, and I will let you know if I know the solution.  I may also add the solution directly to this post, if it happens to actually be an RMI related issue.

21Jan/100

EJB3 @RolesAllowed, annotation type not applicable to this kind of declaration

Author: Trenton

I'm just learning EJB3, and I'm stumbling here and there.  When developing an EJB object, I had a problem where the compiler was giving me an error that says "annotation type not applicable to this kind of declaration".  It was on a line like the following...

@RolesAllowed({"admin", "entryclerk"})

Obviously this is normal to use on a method.  Unfortunately, I had it defined on not just any method, but the constructor method of my Java class.  It took me awhile to figure out why it was happening, so I thought would spare others a bit of grief.

Filed under: Java, Programming No Comments
11Jan/100

Safe Shrinking of ext3 LVM volumes

Author: Trenton

When shrinking your LVM volumes, it is important to do it safely.  I will show you how I like to do that here.

Filed under: LVM, Linux Continue reading
20Dec/091

Intel WIFI 5300 AGN Unknown error 132

Author: Trenton

See comments for latest updates

Recently I started having problems with my Intel Corporation PRO/Wireless 5300 AGN card.  It simply quit working after I did a kernel upgrade.  It was giving errors like "Unknown error 132", and "deauthenticated (Reason: 9)".  The hardware switch did not seem to affect it, and the errors were the same whether I had the switch on, or off; so I'm assuming it had to do with the hardware not being initialized properly when the module loaded.

Filed under: Linux Continue reading
5Dec/090

Gentoo Portage Python Update issues

Author: Trenton

I have been having some gentoo portage problems due to my system being out of sync. When I finally updated a month or two later, it simply wasn't working. I was getting an error like the following...

Performing Global Updates: /usr/portage/profiles/updates/3Q-2009
(Could take a couple of minutes if you have a lot of binary packages.)
 .='update pass'  *='binary update'  #='/var/db update'  @='/var/db move'
 s='/var/db SLOT move'  %='binary move'  S='binary SLOT move'
 p='update /etc/portage/package.*'
......................................................                    

Performing Global Updates: /usr/portage/profiles/updates/4Q-2009
(Could take a couple of minutes if you have a lot of binary packages.)
 .='update pass'  *='binary update'  #='/var/db update'  @='/var/db move'
 s='/var/db SLOT move'  %='binary move'  S='binary SLOT move'
 p='update /etc/portage/package.*'
..................
Traceback (most recent call last):
 File "/usr/bin/emerge", line 40, in <module>
 retval = emerge_main()
 File "/usr/lib64/portage/pym/_emerge/main.py", line 1328, in emerge_main
 return action_sync(settings, trees, mtimedb, myopts, myaction)
 File "/usr/lib64/portage/pym/_emerge/actions.py", line 2173, in action_sync
 if portage._global_updates(trees, mtimedb["updates"]):
 File "/usr/lib64/portage/pym/portage/__init__.py", line 8572, in _global_updates
 moves = bindb.move_ent(update_cmd)
 File "/usr/lib64/portage/pym/portage/dbapi/bintree.py", line 273, in move_ent
 mytbz2.recompose_mem(portage.xpak.xpak_mem(mydata))
 File "/usr/lib64/portage/pym/portage/xpak.py", line 106, in xpak_mem
 indexglob=indexglob+encodeint(len(x))+x+encodeint(datapos)+encodeint(mydatasize)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 49: ordinal not in range(128)
Filed under: Linux Continue reading