Consul intentions have case-sensitive behaviour
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 39
Description
#### Overview of the Issue
I can register a service with a CaseSensitive name, but if I try to set an intention to allow access to the service, it does not grant access. I have tried setting the intention both through the UI and via terraform and I could not get it to stick either way.
If I re-register the original service with a lowercase name then everything works as expected.
#### Reproduction Steps
Steps to reproduce this issue, eg:
1. Register a service in the catalog - service1CaseSensitive
2. Register a second service in the catalog - service2 with service1CaseSensitive as an upstream
3. Create a deny all intention
4. Add an allow intention from service2 -> service1CaseSensitive
5. View the intention list - your new intention appears to be there
6. View the topology screen - you will see that service1CaseSensitive shows as denied
### Consul info for both Client and Server
Server and client are both v14.4
### Operating system and Environment details
Server - Ubuntu 22.04
Client - Windows Server 2019
Contributor guide
Research direction
Start by reproducing the issue with the listed catalog registrations, deny intention, and allow intention for a mixed-case service name. Trace how Consul evaluates intentions for the topology view, comparing mixed-case and lowercase names. Done means the allow intention grants access consistently for mixed-case service names, with regression coverage for the reproduction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- authorization, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100