Category: java
-
Integrating Open Policy Agent with Spring Security Reactive and JSON Web Tokens
We present a Java library that simplifies adopting the Open Policy Agent server to manage user authorization for a Spring Boot microservice, while also managing API Token (JWT) authentication. Motivation Spring Security assumes a fairly simplistic Role-Based access control (RBAC) where the service authenticates the user (via some credentials, typically username/password) and returns a UserDetails […]
-
A better mousetrap (or, how to improve on Java 8 Optional)
Overview The java.util.Optional class is a great addition in Java 8 as it enables a more expressive way of conveying the concept of a library API return value that may not be there. While it is not meant to replace the use of null values in code (and you will get warnings not to use […]
-
Do Not Allow Bad Smells In Your Code
Smelly Code I have recently been involved in a distributed SaaS application that was originally built by an offshore team; the chosen technologies (REST, Java, MongoDB) were actually valid technical choices for the problem at hand: they then proceeded to get it spectacularly wrong with a bloated (and unmanageable) data schema and an even worse […]
-
Data-driven tests for Spring Data (MongoDB)
When testing a project that uses Spring Data repositories, we may want to insert ‘known-good’ data into arbitrary MongoDB collections, reading it, for example, from JSON iles (typically somewhere in the test/resources subtree). However, some of the data stored in Mongo is in BSON format, which extends the plain JSON format with some Object types […]
-
Code Reviews
As anyone who has worked with me is well aware, I’m a great believer in code reviews – there is much to be said about a number of positive impacts on the project (and the developers’ professional growth too). This is a great article that sums up very well the benefits, as well as a […]
-
AWS re:Invent – my notes (post 2 of 3)
Note – the first post (Notes about the AWS JDK) can be found here The following are the (minimally edited) notes I’ve taken while attending the session at AWS re:Invent conference in Las Vegas, NV on 27-30 November, 2012. Keynote speech by Andy Jassy (Sr. Vice President, Amazon Web Services) It is clear we are still at […]
-
Four Principles of Cloud Computing
From Werner Vogels (Amazon.com CTO) keynote speech at re:Invent: ControllableArchitect with cost in mind ResilientDon’t treat failure as an exception AdaptiveMake no assumptions Data DrivenPut everything in logs
-
Run Android tests in a connected device
Not quite sure as to why it never occurred to me, but it is totally possible and legal to run unit tests inside a real device, connected to your dev box via a USB cable.An obvious advantage is that you are now running your tests in a more “realistic” environment; there are no drawbacks that […]
-
Dump CPU temperature data to a file in Ubuntu
Update: I’ve figured out that it makes a lot more sense to have a reading of the CPU load to correlate with the temperature reading, so I’ve added that too using /usr/bin/uptime.I have written a very simple Java utility to take readings from the CPU temperature sensors utility (/usr/bin/sensor) and dump it to a CSV […]