Using Enum to Handle String literals
It looks fine overall, but...

A few pointers


You should make private String value final too though, to clearly indicate that they cannot be modified after instantiation.
One thing to note for values() is that it always returns a new array, so for that reason, sometimes it may be recommended to also construct a lookup Map&lt;String, SecurityClassification&gt; to avoid the extra arrays creation.
Also, is it really OK to just return null if an invalid security classification is specified here? Depending on your implementation, you may want to consider whether you should throw an IllegalArgumentException here to have a slightly better modelling of such cases.
How is hasValue() used? In fact, can it be used in enumForValue() for a case-insensitive comparison?
Finally, enumForValue() may seem like a mouthful, you can consider a shorter name like of(). The other thing to consider is that you don't really need to express that it's an enum this method is returning.