your vertex shader transforms the normals not correctly, you need to transform the position into 2 different coordinate systems: "world space" to do th lighting calculation, and "clip space" for gl_Position