I would also suggest that doValidate should just stream from its body rather than require a form field, but I guess this would be an incompatible change.
Also it checks Permission.READ. That is wrong; you should not use these generic permissions, as they are not managed by authorization strategies. Rather use Jenkins.READ.